суббота, 28 января 2017 г.

Замена пробелов табами и наоборот

Следуя PSR, мой редактор настроен на работу с отступами в 4 пробела, эта настройка применяется при открытии/сохранении файла, заменяя все лишние табы на пробелы.
Однако бывает так что некоторые файлы проекта обязаны иметь в качестве отступов табы. Так как мне лень ковыряться в настройках редактора и вводить какие-нибудь исключения-шмисключения, я сделал себе такой воркфлоу:
  • открываю нужный файл в редакторе
  • редактирую
  • сохраняю
  • командой unexpand заменяю пробелы на табы обратно.
Собственно, сегодня речь пойдет о командах unexpand и expand.

среда, 11 января 2017 г.

Отмена коммита в git

Когда при командной разработке какой-нибудь не самый внимательный  или просто уставший разработчик покоммитит в ветку, которая в ориджине ушла вперед, то в истории коммитов получится не слишком нужный мерж. Для того чтобы этого избежать можно создать простейший гит-хук (подробнее о хуках) на событии pre-commit.

Что должно происходить в этом хуке, чтобы можно было отменить попытку коммита?
Основной момент - выход из хука должен быть с ненулевым кодом. Выход же с нулевым кодом гарантирует последующий коммит.

Я перебрал довольно много вариантов получения разницы между ветками и остановился на команде

git rev-list HEAD..origin/branch --count

Выводом данной команды является число коммитов, на которое локальная ветка отличается от ветки в удаленном репозитории. Если ветки одинаковы - то это число 0. Если ветки в удаленном репозитории нет - то возвращается пустая строка и дополнительное сообщение о том что ветка origin/branch не найдена в удаленном репозитории.

суббота, 7 января 2017 г.

Команды MySQL

После того как вы освоили простецкие команды mysql типа
SELECT * FROM
или
UPDATE `TABLE` SET ...
то можно изучить новые, ранее неизвестные, дабы лучше понимать что и как в вашей базе данных организовано.