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