Pull to refresh

Comments 16

Это все хорошо если у вас только pep и несколько юнит тестов. Но если у вас множество разные утилит, компиляторов и флагов…
Поэтому, мне кажется, лучше использовать ci. Для github это travis и appveyor.
Дельное замечание, спасибо. Добавил в статью.
Чтобы процесс детачнулся под линуксом достаточно передать close_fds = True в аргументах к Popen(), хотя под виндой может потребоваться поиграть с флагом DETACHED_PROCESS (http://stackoverflow.com/questions/13592219/launch-a-totally-independent-process-from-python).

Добавлю, что человек, который закоммитит файл some_file_which_ends_with_py, game.spy, например, будет неприятно удивлен.
Спасибо, исправил)

P.S. С DETACHED_PROCESS поэкспериментирую завтра, это похоже на выход. Позже отпишусь.
Флаг DETACHED_PROCESS привязан к платформе, его использование нежелательно, чтобы не добавлять лишних проверок на текущую OS. А вот close_fds оказался панацеей, если не трогать std-потоки.

Статью обновил.

Большое спасибо за подсказку.
Упомяну, что для Ruby (и как понимаю он может быть расширен для любого языка) — есть прекрасный gem overcommit — github.com/brigade/overcommit, который реализует все сказанное в статье.
ну вот опять зарекаюсь писать комментарии, пока его проверят — уже будет готов аналогичный комментарий от другого человека
Тоже полезный инструмент, и довольно-таки функциональный. Но, я так понимаю, для его работоспособности необходимо локально развернуть интерпретатор Ruby?
Да, необходим Ruby, но насколько я знаю должно хватить версии из поставки с дистрибутивом, без плясок с rvm, так что все довольно аналогично по требованиям к системе, как и в скриптом на python из статьи.
Пожалуй, тоже нужно добавить в статью, как одну из альтернатив. Кстати, а насколько хорошо он дружит с Windows?
Судя по документации (и наличию костылей в коде для поддержки Windows) — должно дружить с некоторым ограничением функциональности.
Но вдруг появляется необходимость внести изменения в хук, который уже живет в 20 проектах… Или внезапно нужно переносить разработку с Windows на Linux, а хук на PowerShell'е… Что делать?

А как такое решение: завести 21-й проект для хуков? Локальных хук будет лишь подгружать «главный» скрипт из репозитория. Этот главный скрипт определяет ОС и загружает другой скрипт, выполняющий непосредственно проверку.
Можно. Только зачем так усложнять? Лучше, когда есть один код, который одинаково выполняется под всеми необходимыми ОС
Sign up to leave a comment.

Articles