воскресенье, 10 декабря 2017 г.

Удалить файл из git

Бывает, из истории git-репозитория необходимо удалить какой-нибудь файл. Чаще всего это либо файл с паролем, либо файл большого размера.

Возможность такая есть и описана в книге Pro Git. Требуется использовать filter-branch, что на практике довольно не просто.

К счастью, существует альтернатива - утилита BFG.

Пользоваться довольно просто:

; Клонируем репозиторий 
$ git clone --mirror git://example.com/my-repo.git

; Удаляем файл
$ java -jar bfg.jar --delete-files FILE_NAME_TO_REMOVE my-repo.git

; Заходим в репозиторий и проводим в нем чистку
$ cd my-repo.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive

; Заливаем измененеия
$ git push
В случае, если возникает ошибка
Protected commits
-----------------

These are your protected commits, and so their contents will NOT be altered:

 * commit ******* (protected by 'HEAD')
помогает опция --no-blob-protection.

суббота, 17 октября 2015 г.

Подключение Nexus 5 к PC после обновления до Android 6

Мой Nexus 5 недавно обновился до Android 6. Неожиданно обнаружил, что при подключении Nexus к компьютеру проводник перестал отображать список файлов на девайсе.. Проверил настройки. В настройках Developers Options -> Select USB Configuration выбран режим MTP (Media Transfer Protocol). Ну и что за дела?

Ответ нашелся на форуме Nexus. Оказывается, при подключении Nexus к компьютеру на девайсе отображалось уведомление USB for charging. Touch for more options. Открыл его, вывались меню Use USB for. Выбрал Transfer files (MTP) и все заработало.

Виновата, конечно, моя невнимательность. Ведь все на экране написано :) И все же: почему в настройках указан один режим, а по факту девайс подключился в другом? Баг это или "фича"?

Update Похоже, все же "фича". Опцию USB for charging. Touch for more options приходиться менять каждый раз при подключении девайса к компьютеру. И, кстати, появляется она на экране залоканного девайса ни сразу, а с небольшой задержкой.

среда, 14 октября 2015 г.

Ссылка на рисунки и таблицы в Microsoft Word - показывать только номер

Недавно вышел новый Microsoft Office 2016 и в нем по-прежнему существует проблема создания перекрестных ссылок для рисунков и таблиц - интерфейс не дает возможность создать ссылку в виде номера. Максимум чего можно добиться - выбрать при создании ссылки "Постоянная часть и номер" и получить ссылку в виде "Рисунок 1". Возникает вопрос, как выкинуть слово "Рисунок" и получить просто "1"?

В интернете полно статей на эту тему. Обычно предлагают два варианта: пометить "Рисунок" как скрытый текст или воспользоваться закладками. Однако существует еще один способ, на мой взгляд, более быстрый и удобный.

Щелкаем по вставленной перекрестной ссылке правой клавишей мыши и выбираем команду Коды/значения полей. На месте перекрестной ссылки в документе появится ее код, например вот такой {REF _Ref432583060 \h} . Дописываем к коду поля вот такой постфикс

\# "0"

Т.е. превращаем код ссылки в {REF _Ref432583060 \h \# "0"}

Еще раз даем команду Коды/значения полей - перекрестная ссылка на рисунок отображается в виде "1". То что нужно.

среда, 2 апреля 2014 г.

Отключение junit.framework.Assert в релизе Android-приложения

Как я уже писал, стандартные директивы assert по умолчанию отключены на Android-девайсах. Их необходимо включать (например командой adb shell setprop debug.assert 1, после чего assert будет работать до перезагрузки девайса). Альтернатива - junit.framework.Assert. И по функционалу побогаче, и работает на девайсах сразу, без дополнительных включений. При Null-анализе компилятор eclipse учитывает junit.framework.Assert точно так же, как обычный assert. Вроде бы, одни плюсы. Но: в релизе ассерты следует отключить. И вот тут требуются дополнительные телодвижения.

воскресенье, 2 февраля 2014 г.

REST под Android. Часть 3: библиотеки Square

В процессе работы над первой и второй частью статьи, я неоднократно натыкался на упоминание разнообразных библиотек компании Square, которые народ активно использует при реализации REST-клиентов. Приглядимся к этим библиотекам поближе.