2013-07-29 4 views
5

Возможно ли иметь «пользовательский» идентификатор изменения в сообщении с фиксацией gerrit?Пользовательский идентификатор изменения в gerrit

Например,

- My commit message 

Change-Id: BM10945 

Где BM10945 является bluemine билет изменение для.

Я продолжаю получать (missing or invalid Change-Id line format in commit message footer) от gerrit и не могу зафиксировать.

ответ

4

Нет, вы не можете. Вам нужно использовать собственный формат изменения ИД Gerrit. У вас может быть один автогенерированный для вашей фиксации, установив в скрипт-скрипт commit-msg, включенный в Gerrit. Более подробную информацию можно получить на странице Gerrit Change-Ids documentation.

+0

Вот чего я боялся - спасибо @ Карлу. – Jarrett

+0

почему? какая спецификация формата? – SummerBreeze

+0

@SummerBreeze Нужно начать с капитала 'I' – adib

5

Вы можете использовать конфигурацию commentlink для автоматического анализа номеров билетов в сообщениях фиксации и отображения их в виде ссылок в веб-интерфейсе Gerrit.

E.g. для Redmine из них:

[commentlink "redmine"] 
    match = "(BM[0-9]+)" 
    html = "<a href='http://www.redmine.org/issues/$1'>$1</a>" 

Кроме того, вы можете использовать TrackingID to add a footer containing a link to a tracking database хотя заметим, что если вы используете простую установку, которая использует встроенную базу данных H2, то вы должны запустить программу ScanTrackingIds вручную, когда Геррит вне форума что делает его невозможным.

Наконец, если вы хотите получить другую форму для связывания билетов, чтобы перепродать билеты, например, обновления электронной почты, содержащие ссылку, или сделать действия gerrit (опубликовать patchset, merge), обновите билет, используйте Gerrit hooks (немного отличается от обычных git hooks) и some scripting для их соединения.

+0

Ooo, это потрясающе! Мы могли бы это сделать, спасибо @Motti! – Jarrett

0

В дополнение к Carl Norum's answer, вы действительно можете создать свой собственный ChangeId до тех пор, как:

  • Он начинается с заглавной буквы I;
  • Он содержит 32 шестнадцатеричных символа;

Один формат выборки может быть:

I201611160832aa0000000000786176696572 

Она начинается с даты и времени (YYYYMMDDHHMM), а затем в сепаратор, а затем название коммиттера в формате гекса (здесь я использовал ASCII , но можно использовать другой формат), дополненный 00.

Смежные вопросы