Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Inbar RoseОтветов: 1

Мы используем 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? Как мы можем заставить его запускать хук автоматически?

gitgit-mergegithooksgerritcommit-message

Ответы

Ответ 1 · рейтинг 1 · Marcelo Ávila de Oliveira

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы