blob: 6bd2147f15652629881b8b04cca5c01dcabd051b [file] [log] [blame]
Zesstra2c7ce6e2020-04-05 11:01:00 +02001Commits in gerrit pushen
2========================
3
4Zunaechst sei einmal auf die Manpage :doc:`git-workflow` verwiesen.
5
6Upload / Push ohne Review
7-------------------------
8
9Ihr folgt dem :doc:`git-workflow` einfach vollstaendig. Eure Aenderungen
10werden direkt in die aktive Mudlib uebertragen.
11
12Upload / Push mit Review
13------------------------
14
15Folgt dem :doc:`git-workflow` bis Schritt 4 (einschliesslich). Ab dort gehts
16wie folgt weiter:
17
18 5. Pusht eure Aenderungen zum Review nach Gerrit:
19 ``git push origin lokalerbranch:refs/for/master``
20 Damit werden eure Aenderungen des Zweigs lokalerbranch in den Review fuer
21 den master-Zweig im MG uebertragen.
22 Fuer jeden Commit wird ein Change in Gerrit erzeugt.
23 Ihr bekommt in der Ausgabe auch die URL zum Change, den ihr erzeugt habt.
24 Anschliessend tragt ihr entweder dort auf der Weboberflaeche einen oder
25 mehrere Reviewer ein oder redet mit denjenigen im Mud.
26
27 6. Die Reviewerin hat oft Wuensche, d.h. ihr muesste den Change nochmal
28 ueberarbeiten. Dazu gibt es zwei Moeglichkeiten:
29
30 a) Ihr aendert auf der Weboberflaeche selber (``Edit`` und spaeter dann
31 ``Publish Edit``
32 b) Wollt ihr bei euch lokal auf dem Rechner nur einen (den letzten Commit
33 in eurem lokalen Zweig) aendern geht das am
34 besten mit ``git commit --amend``.
35 Spaetestens nach dieser Aenderungen **muss** in der Commit-Message
36 die sog. Change-ID aus Gerrit als *letzte Zeile* und mit einer
37 Leerzeile getrennt auftauchen, z.B.
38 ``Change-Id: Ie8fe15834a0eb3917318dc291b97a28e34b85b75``.
39 Anschliessend koennt ihr wie in Schritt 4. erneut pushen und der
40 Change in Gerrit wird aktualisiert.
41 c) Wollt ihr mehrere Commits bei euch lokal auf dem Rechner aendern,
42 muesst in eurem lokalen Zweig ein sog. interaktives rebase machen und
43 in diesem dann eure Commits editieren.
44 Wechselt in euren lokalen Zweig und benutzt ``git rebase -i master``
45 (dies bedeutet "setze diesen Zweig neu auf den master auf und lass
46 mich dabei Aenderungen vornehmen).
47 Spaetestens hierbei **muss** in allen Commit-Messages die zu diesem
48 Commit passende Change-ID aus Gerrit als *letzte Zeile* und mit einer
49 Leerzeile getrennt auftauchen.
50 Anschliessend koennt ihr wie in Schritt 4. erneut pushen und alle
51 Changes in Gerrit werden aktualisiert.
52
53 7. Wenn die Reviewerin zufrieden ist, wird sie den Change in den Zweig
54 'master' mergen und er landet damit im MG.
55
56
57Weitere Infos
58-------------
59
60Es gibt noch viele weitere Informationen, wie man Aenderungen in Gerrit
61bekommt (z.B. kann man direkt mit dem ersten Push automatisiert Reviewer fuer
62alle Changes festlegen, Topics und Hashtags zur Kategorisierung verwenden). Es
63ist empfehlenswert, in die Doku von Gerrit zu schauen:
64
65 * `https://mg.mud.de/gerrit/Documentation/user-upload.html`
66 * `https://mg.mud.de/gerrit/Documentation/user-upload.html#push_create`
67 * `https://mg.mud.de/gerrit/Documentation/user-upload.html#push_replace`
68
69Mehr Informationen ueber die Change-ID bekommt ihr hier:
70`https://mg.mud.de/gerrit/Documentation/user-changeid.html`
71
72Ihr koennt git auch beibringen, dass in alle eure Commit-Messages die sog.
73Change-ID automatisch ergaenzt wird, in dem ihr einen 'commit-msg' hook aus
74Gerrit in euerem Repository installiert:
75``scp -p -P 29418 <user>@mg.mud.de:hooks/commit-msg .git/hooks/``
76Details bekommt ihr hier:
77`https://mg.mud.de/gerrit/Documentation/user-changeid.html#creation`
78
79Die Doku geht auch auf haeufige Taetigkeiten im Zusammenhang mit dem Upload
80von Aenderungen ein:
81`https://mg.mud.de/gerrit/Documentation/user-changeid.html#_git_tasks`
82
83
84Siehe auch
85----------
86
87 * gerrit
88 * git-howto: Wie git benutzt wird
89 * git-workflow: Wie man sinnvoll vorgehen kann beim Entwickeln
90 * git-kooperation: Ein ueber git-workflow hinausgehendes Beispiel zur
91 Synchronisation bzw Kooperation mehrerer Magier/Rechner
92 * gerrit-sync: Wie die Synchronisierung zw. git-Repos und Mudlib ablaeuft
93 * git-faq: haeufig gestellte Fragen/Probleme
94