2017-02-14 3 views
0

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

Однако, иногда, когда вытягивать мы получаем рекурсивное слияние, это проявляется в reflog, как это:

767deb5 [email protected]{0}: pull: Merge made by the 'recursive' strategy. 

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

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

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

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

ответ

1

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

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

+0

Отлично, это обходное решение является совершенным. Я отвечу на ваш ответ, если вы укажете содержание здесь для потомков. :) –