Обрабатывать несколько захватов с предварительной фиксацией

У меня есть необходимость использовать несколько скриптов с фиксацией до фиксации. Не знаете, как с ними справиться. Должны ли все они объединяться в один большой 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, но вы можете использовать что-то подобное с помощью других технологий.