Хук git commit-msg не срабатывает, когда при извлечении происходит рекурсивное слияние

Мы используем gerrit CI, для которого требуется хук commit-msg, добавляющий Change-ID к каждому сообщению фиксации.

Однако иногда при извлечении мы получаем рекурсивное слияние, это отображается в журнале ссылок следующим образом:

767deb5 HEAD@{0}: pull: Merge made by the 'recursive' strategy.

Когда это происходит, мы не можем выполнить отправку на наш сервер gerrit и получаем следующее сообщение:

 ! [remote rejected] HEAD -> refs/for/master ([767deb5] missing Change-Id in commit message footer)

Это решается достаточно легко, путем изменения последнего коммита. Но это утомительно и раздражает.

Как мы можем избежать этой проблемы? Почему стратегия рекурсивного слияния не запускает хук commit-msg? Как мы можем заставить его запускать хук автоматически?


person Inbar Rose    schedule 14.02.2017    source источник


Ответы (1)


Проблема не связана со стратегией рекурсивного слияния (я думаю, это было просто совпадение). Если вы хотите узнать больше о стратегии рекурсивного слияния, взгляните на этот самый хороший текст об этом.

Проблема возникает из-за того, что хук Git commit-msg не выполняется для коммитов слияния без конфликтов. Вы найдете очень хороший обходной путь по адресу: https://stackoverflow.com/a/24692818/4653675.

person Marcelo Ávila de Oliveira    schedule 14.02.2017
comment
Отлично, этот обходной путь идеален. Я приму ваш ответ, если вы процитируете содержание здесь для потомков. :) - person Inbar Rose; 15.02.2017