Вариант 1:
Как уже упоминалось, прямой способ сделать это с помощью Git - это перехват prepare-commit-message .
Однако в этой стратегии есть проблемы, которые необходимо учитывать. Из главы 7.4 Pro Git:
[скрипты хуков на стороне клиента] не
передается с клоном
проект, вы должны распространять эти
сценарии другим способом, а затем есть
ваши пользователи копируют их в свои
.git / hooks каталог и сделай их
исполняемый файл. Вы можете распространять эти
крючки в рамках проекта или в
отдельный проект, но нет возможности
настроить их автоматически.
Вариант 2:
Как уже упоминалось Том Моррис , используйте шаблон коммита .
Вариант 3:
Вы можете сделать пользовательскую сборку Git, которая включает ваши дополнительные инструкции. Инструкции, включенные в текущее сообщение коммита, жестко запрограммированы в исходном коде Git. См $GIT_SRC/builtin/commit.c
начиная с строки 655 .
Этот метод, вероятно, не является предпочтительным, поскольку вам придется применять патч каждый раз, когда выпускается новая версия Git.
Вариант 4:
Создайте патч для Git, который добавляет эту функцию и отправьте его в список рассылки. Если вы (или другие) решите попробовать это, я сначала попросил бы совет из списка о том, как действовать.
Mercurial:
Сценарии хуков в Mercurial ведут себя аналогичным образом. С Глава 10 Mercurial: полное руководство:
В Mercurial крючки не являются ревизиями
контролируется и не размножается, когда
Вы клонируете или извлекаете хранилище.
Причина этого проста: крючок
это совершенно произвольный кусок
исполняемый код Он работает под вашим
личность, с вашей привилегией
уровень, на вашей машине.
Это было бы крайне безрассудно для любого
распределенная система контроля версий
внедрить крюки с контролем версий,
как это будет легко предложить
эксплуатируемый способ подорвать
аккаунты пользователей ревизии
система управления.