2013-07-29 10 views
5

Ist es möglich, eine 'benutzerdefinierte' Change-ID in einer Gerrit-Commit-Nachricht zu haben?Benutzerdefinierte Change-ID in Gerrit

Zum Beispiel

- My commit message 

Change-Id: BM10945 

Wo BM10945 die bluemine Ticket ist die Änderung für ist.

Ich bekomme immer eine (missing or invalid Change-Id line format in commit message footer) von Gerrit, und kann nicht begehen.

Antwort

4

Nein, das geht nicht. Sie müssen Gerrits eigenes Change-ID-Format verwenden. Sie können eine automatisch generierte Datei für Ihr Commit erstellen, indem Sie das in Gerrit enthaltene Hook-Skript commit-msg installieren. Weitere Informationen erhalten Sie unter Gerrit Change-Ids documentation.

+0

Dafür habe ich Angst gehabt - danke @Carl. – Jarrett

+0

warum? Was ist die Spezifikation des Formats? – SummerBreeze

+0

@SummerBreeze Es muss mit der Hauptstadt 'I' beginnen – adib

5

Mithilfe der Konfiguration commentlink können Sie Ticketnummern automatisch in Commit-Nachrichten analysieren und sie als Links in der Gerrit-Weboberfläche anzeigen.

z. für Ihre redmine diejenigen:

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

Sie können aber auch die TrackingID to add a footer containing a link to a tracking database obwohl beachten Sie verwenden, wenn Sie die einfachste Setup verwenden, die die eingebettete H2-Datenbank verwendet, die Sie das ScanTrackingIds Programm manuell ausführen, wenn Gerrit ist offline was macht es nicht machbar.

Schließlich, wenn Sie eine andere Form der Verknüpfung Tickets zum redmine Tickets, wie E-Mail-Updates mit einem Link oder machen Gerrit Aktionen (veröffentlichen Patchset, merge) benötigen aktualisieren Sie das Ticket, verwenden Sie Gerrit hooks (etwas anders als normale Git-Hooks) und some scripting, um sie zu verbinden.

+0

Ooo das ist genial! Wir könnten das am Ende tun, danke @Motti! – Jarrett

0

In Ergänzung zu Carl Norum's answer, Sie können in der Tat Ihre eigene ChangeId schaffen, so lange:

  • Es mit einem Groß beginnt I;
  • Es enthält 32 hexadezimale Zeichen;

Eine Probe Format könnte sein:

I201611160832aa0000000000786176696572 

Es beginnt mit dem Datum und Uhrzeit (YYYYMMDDHHMM), durch einen Separator gefolgt, und dann der Name des Committer in Hexa-Format (hier verwendet i ascii , aber man könnte ein anderes Format verwenden), gepolstert mit 00.