Zesstra | 0389bae | 2020-04-05 11:10:22 +0200 | [diff] [blame] | 1 | Upload via Gerrit |
| 2 | ================= |
Zesstra | 2c7ce6e | 2020-04-05 11:01:00 +0200 | [diff] [blame] | 3 | |
| 4 | Zunaechst sei einmal auf die Manpage :doc:`git-workflow` verwiesen. |
| 5 | |
| 6 | Upload / Push ohne Review |
| 7 | ------------------------- |
| 8 | |
| 9 | Ihr folgt dem :doc:`git-workflow` einfach vollstaendig. Eure Aenderungen |
| 10 | werden direkt in die aktive Mudlib uebertragen. |
| 11 | |
| 12 | Upload / Push mit Review |
| 13 | ------------------------ |
| 14 | |
| 15 | Folgt dem :doc:`git-workflow` bis Schritt 4 (einschliesslich). Ab dort gehts |
| 16 | wie 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 |
Zesstra | 0389bae | 2020-04-05 11:10:22 +0200 | [diff] [blame] | 46 | mich dabei Aenderungen vornehmen"). |
Zesstra | 2c7ce6e | 2020-04-05 11:01:00 +0200 | [diff] [blame] | 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 | |
| 57 | Weitere Infos |
| 58 | ------------- |
| 59 | |
| 60 | Es gibt noch viele weitere Informationen, wie man Aenderungen in Gerrit |
| 61 | bekommt (z.B. kann man direkt mit dem ersten Push automatisiert Reviewer fuer |
| 62 | alle Changes festlegen, Topics und Hashtags zur Kategorisierung verwenden). Es |
| 63 | ist 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 | |
| 69 | Mehr Informationen ueber die Change-ID bekommt ihr hier: |
| 70 | `https://mg.mud.de/gerrit/Documentation/user-changeid.html` |
| 71 | |
| 72 | Ihr koennt git auch beibringen, dass in alle eure Commit-Messages die sog. |
| 73 | Change-ID automatisch ergaenzt wird, in dem ihr einen 'commit-msg' hook aus |
| 74 | Gerrit in euerem Repository installiert: |
| 75 | ``scp -p -P 29418 <user>@mg.mud.de:hooks/commit-msg .git/hooks/`` |
| 76 | Details bekommt ihr hier: |
| 77 | `https://mg.mud.de/gerrit/Documentation/user-changeid.html#creation` |
| 78 | |
| 79 | Die Doku geht auch auf haeufige Taetigkeiten im Zusammenhang mit dem Upload |
| 80 | von Aenderungen ein: |
| 81 | `https://mg.mud.de/gerrit/Documentation/user-changeid.html#_git_tasks` |
| 82 | |
| 83 | |
| 84 | Siehe 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 |
Zesstra | 0389bae | 2020-04-05 11:10:22 +0200 | [diff] [blame] | 91 | Synchronisation bzw Kooperation mehrerer Magier/Rechner |
Zesstra | 2c7ce6e | 2020-04-05 11:01:00 +0200 | [diff] [blame] | 92 | * gerrit-sync: Wie die Synchronisierung zw. git-Repos und Mudlib ablaeuft |
| 93 | * git-faq: haeufig gestellte Fragen/Probleme |
| 94 | |