Обрабатывать несколько захватов с предварительной фиксацией
У меня есть необходимость использовать несколько скриптов с фиксацией до фиксации. Не знаете, как с ними справиться. Должны ли все они объединяться в один большой pre-commit script? если нет, как обрабатывать несколько сценариев предварительной фиксации?
Ответы
Ответ 1
Должны ли все они объединяться в один большой pre-commit script?
Да и нет: вы можете объявить только один pre-commit script, поэтому этот script должен отвечать за:
- вызов фактических сценариев предварительной фиксации
- выбрал порядок для тех сценариев, которые будут вызываться.
Итак:
- одна предварительная фиксация script
- вызов нескольких сценариев, каждый из которых разрешает или нет (с их статусом выхода), фиксация для продолжения.
Ответ 2
Вы можете использовать делегирование script, которое вызывает только другие скрипты (подмены):
https://gist.github.com/carlos-jenkins/89da9dcf9e0d528ac978311938aade43
Применение:
Сделайте свою строительную систему для создания символической ссылки в каталоге Git hooks к этому script с именем крюка, который вы хотите посетить.
Например, pre-commit
.
Затем этот крючок выполнит в алфавитном порядке все файлы исполняемых файлов
(subhooks), найденный под папкой, названной в честь типа крюка, который вы посещаете
суффикс с .d
.
Например, pre-commit.d
.
Как это выглядело:
.git/hooks/
|_ pre-commit -> ../../tools/git/multihooks.py
|_ pre-commit.d/
|_ 01-cpp_coding_standard
|_ 02-python_coding_standard
|_ 03-something_else
Для этого требуется Python3, но вы можете использовать что-то подобное с помощью других технологий.