Поскольку при переключении с SVN на Git мы потеряли способность применять наши стандарты кодирования с помощью крюка pre-commit
на сервере subversion.
С помощью Git у вас есть только предварительные фиксации на клиенте, которые не могут быть применены каким-либо образом. Хуже всего то, что у нас есть разработчики, работающие со всеми тремя основными операционными системами, поэтому привязка pre-commit, работающая в Linux или OS X, не работает автоматически в Windows.
В пути используется реализация pre-receive
hook на сервере, но решение не так просто, как кажется:
Представьте, что разработчик сделал 20 коммитов и хочет их протолкнуть. Все предварительные и предварительные запросы, которые я знаю (1, 2), просто проверьте одиночные коммиты, которые в конечном итоге потерпят неудачу и предотвратят нажатие. Теперь разработчик исправляет проблемы и делает еще одну фиксацию и пытается снова нажать. Поскольку крючки проверяют одиночные коммиты, он снова не сработает.
Итак, нам нужен крюк pre-receive
, который генерирует список всех измененных файлов во всех коммитах, которые будут помещаться, и запускает phpcs только в текущем состоянии.
Есть ли такой крючок script уже? Где?
Изменить: Кажется, есть script, который создает этот список файлов - к сожалению, в Python, но это можно портировать. Меня все еще интересуют предварительные решения с PHPCS:)