2016.06 2017.06

Arbeiten mit Git

Allgemeines

Mit Release 2016.06 ist MyCoRe im September 2016 auf GitHub als Versionierungssystem umgezogen. Die soll sowohl die Wahrnehmung des Projektes in der Open Source Gemeinde begünstigen wie auch Verbesserungen bei der Arbeit an neuen Funktionen und gemeldeten Bus bringen. MyCoRe erhofft sich damit auch eine größere Zahl mitwirkender Codeentwickler. Zum Einrichten der Git-Umgebung und der Arbeit sei auf unsere Eclipse-Dokumentation verwiesen.

Übersicht der MyCoRe-Git-Prozesse
Abbildung 1: Übersicht der MyCoRe-Git-Prozesse

Bearbeiten eines Bugs

Für die Bearbeitung eines Bugs muss zuerst dieser bei MyCoRe-Jira gemeldet werden.

Zuerst ist ist je nach dem, wo der Fehler aufgetreten ist, der master und die entsprechenden LTS-Branches auszuchecken. Bei Fehlern im LTS erfolgt am Ende ein merge in den Master. Dies und alle weiteren Schritte in Git sollten wegen der sichereren Verarbeitung auf der Kommandozeile ausgeführt werden.

mkdir -p git; cd ~/git; git clone https://github.com/MyCoRe-Org/mycore.git

Mit git status kann man sich jederzeit den eigenen Arbeitsstatus anzeigen lassen.

Die Liste der vorhandenen Branches bekommt man mit git branch -v

Je nach dem, ob der Bug im master (unter SVN truck) oder in einem Branch ist, muss in selbigen gewchselt werden. git checkout [master | LTS-Branch]

Es ist sinnvoll nun noch einmal den eigenen Codestand mit git pull -r zu aktualisieren.

Nun ist zum Zwecke der Bearbeitung des Tickets ein eigener Branch dafür zu erstellen. Dieser MUSS für MyCoRe zwingend die Form haben issues/{JIRA-Ticket}-{Ticket Summary} !!! Dies wird mit git checkout -b issues/{JIRA-Ticket}-{Ticket Summary} erzeugt. Im Ticket Summary dürfen keine Leerzeichen stehen. Beispiel: git checkout -b issues/MCR-1428-delete_in_SVN_store

Nun sind die gewünschten Änderungen in den Code einzuarbeiten und lokal zu testen.

Mit git diff [--index | --cached] werden diese angezeigt.

Geänderte Dateien können Git mit git add {path to file} bekannt gemacht werden.

Ist alles fertig erfolgt im lokalen System ein git commit . Im Commit-Text muss in der ersten Zeile die Ticket-Nummer und ein sehr kurzer beschreibender Text stehen. Ausführlichere Erläuterungen folgen dann in den folgenden Zeilen.

Mit git push --set-upstream origin issues/{JIRA-Ticket}-{Ticket Summary} wird nun die Änderung Richtung GitHub befördert.

Da in MyCoRe vor der Aufnahme eines Fixes noch ein Code-Review steht, welches nur wenige Kern-Entwickler bearbeiten, muss nun ein Pull-Request gestellt werden. Hierfür ist auf die MyCoRe-Git-Seite zu gehen.

  • Dort steht unter dem Button Branch: Master der eigene Bugfix.
  • Dieser ist auszuwählen und in der nun erscheinenden Ansicht ist New pull request anzuklicken.
  • Hier nun unter base das Release bzw. den Master auswählen, für den der Fix ist
  • Weiterhin ist die Commit-Nachricht auf Logik und Aussagekräftigkeit zu prüfen. Es gelten die Regeln wie beim Commit!
  • Zum Schluss ist die Anforderung mittes Create pull request abzusenden.

Ist mit dem Pull request alles klar gegangen, kann der Branch für den Fix mit git checkout [master | release] und git branch -d issues/{JIRA-Ticket}-{Ticket Summary} vom lokalen System gelöscht werden.

Wenn ein Pull Request nicht angenommen wird

[ToDo]

 Jens Kupferschmidt, Thomas Scheffler - 2016-11-11