Хук 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)


arrow_upward
1
arrow_downward

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

Проблема возникает из-за того, что хук 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