| |
| Upload via Gerrit |
| ***************** |
| |
| Zunaechst sei einmal auf die Manpage Git workflow verwiesen. |
| |
| |
| Upload / Push ohne Review |
| ========================= |
| |
| Ihr folgt dem Git workflow einfach vollstaendig. Eure Aenderungen |
| werden direkt in die aktive Mudlib uebertragen. |
| |
| |
| Upload / Push mit Review |
| ======================== |
| |
| Folgt dem Git workflow bis Schritt 4 (einschliesslich). Ab dort gehts |
| wie folgt weiter: |
| |
| 5. Pusht eure Aenderungen zum Review nach Gerrit: "git push |
| origin lokalerbranch:refs/for/master" Damit werden eure |
| Aenderungen des Zweigs lokalerbranch in den Review fuer den |
| master-Zweig im MG uebertragen. Fuer jeden Commit wird ein |
| Change in Gerrit erzeugt. Ihr bekommt in der Ausgabe auch die |
| URL zum Change, den ihr erzeugt habt. Anschliessend tragt ihr |
| entweder dort auf der Weboberflaeche einen oder mehrere Reviewer |
| ein oder redet mit denjenigen im Mud. |
| |
| 6. Die Reviewerin hat oft Wuensche, d.h. ihr muesste den Change |
| nochmal ueberarbeiten. Dazu gibt es zwei Moeglichkeiten: |
| |
| 1. Ihr aendert auf der Weboberflaeche selber ("Edit" und |
| spaeter dann "Publish Edit" |
| |
| 2. Wollt ihr bei euch lokal auf dem Rechner nur einen (den |
| letzten Commit in eurem lokalen Zweig) aendern geht das am |
| besten mit "git commit --amend". Spaetestens nach dieser |
| Aenderungen **muss** in der Commit-Message die sog. Change-ID |
| aus Gerrit als *letzte Zeile* und mit einer Leerzeile |
| getrennt auftauchen, z.B. "Change-Id: |
| Ie8fe15834a0eb3917318dc291b97a28e34b85b75". Anschliessend |
| koennt ihr wie in Schritt 4. erneut pushen und der Change in |
| Gerrit wird aktualisiert. |
| |
| 3. Wollt ihr mehrere Commits bei euch lokal auf dem Rechner |
| aendern, muesst in eurem lokalen Zweig ein sog. interaktives |
| rebase machen und in diesem dann eure Commits editieren. |
| Wechselt in euren lokalen Zweig und benutzt "git rebase -i |
| master" (dies bedeutet "setze diesen Zweig neu auf den master |
| auf und lass mich dabei Aenderungen vornehmen"). Spaetestens |
| hierbei **muss** in allen Commit-Messages die zu diesem |
| Commit passende Change-ID aus Gerrit als *letzte Zeile* und |
| mit einer Leerzeile getrennt auftauchen. Anschliessend koennt |
| ihr wie in Schritt 4. erneut pushen und alle Changes in |
| Gerrit werden aktualisiert. |
| |
| 7. Wenn die Reviewerin zufrieden ist, wird sie den Change in den |
| Zweig 'master' mergen und er landet damit im MG. |
| |
| |
| Weitere Infos |
| ============= |
| |
| Es gibt noch viele weitere Informationen, wie man Aenderungen in |
| Gerrit bekommt (z.B. kann man direkt mit dem ersten Push automatisiert |
| Reviewer fuer alle Changes festlegen, Topics und Hashtags zur |
| Kategorisierung verwenden). Es ist empfehlenswert, in die Doku von |
| Gerrit zu schauen: |
| |
| * https://mg.mud.de/gerrit/Documentation/user-upload.html |
| |
| * https://mg.mud.de/gerrit/Documentation/user- |
| upload.html#push_create |
| |
| * https://mg.mud.de/gerrit/Documentation/user- |
| upload.html#push_replace |
| |
| Mehr Informationen ueber die Change-ID bekommt ihr hier: |
| https://mg.mud.de/gerrit/Documentation/user-changeid.html |
| |
| Ihr koennt git auch beibringen, dass in alle eure Commit-Messages die |
| sog. Change-ID automatisch ergaenzt wird, in dem ihr einen 'commit- |
| msg' hook aus Gerrit in euerem Repository installiert: "scp -p -P |
| 29418 <user>@mg.mud.de:hooks/commit-msg .git/hooks/" Details bekommt |
| ihr hier: https://mg.mud.de/gerrit/Documentation/user- |
| changeid.html#creation |
| |
| Die Doku geht auch auf haeufige Taetigkeiten im Zusammenhang mit dem |
| Upload von Aenderungen ein: https://mg.mud.de/gerrit/Documentation |
| /user-changeid.html#_git_tasks |
| |
| |
| Siehe auch |
| ========== |
| |
| * gerrit |
| |
| * Doku von Gerrit: |
| |
| * https://mg.mud.de/gerrit/Documentation/intro-user.html |
| |
| * https://mg.mud.de/gerrit/Documentation/index.html#_tutorials |
| |
| * git-howto: Wie git benutzt wird |
| |
| * git-workflow: Wie man sinnvoll vorgehen kann beim Entwickeln |
| |
| * git-kooperation: Ein ueber git-workflow hinausgehendes Beispiel |
| zur Synchronisation bzw Kooperation mehrerer Magier/Rechner |
| |
| * gerrit-sync: Wie die Synchronisierung zw. git-Repos und Mudlib |
| ablaeuft |
| |
| * git-faq: haeufig gestellte Fragen/Probleme |