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