Homework 0
Throughout this assignment you will get to know the working environment and it's tools. This is not specific to the SYSO course, but it is a required lesson for an efficient collaboration in the following assignments.
Overview
- Lern- und Aufgabenziele
- Vorbereitung
- Aufgabe
Für die Namen und Beispiele in dieser Aufgabe gilt:
Variable | Substitution |
---|---|
${N} | Ihre Gruppennummer |
${USR} | Das GitHub-Kürzel des ausführenden Benutzers |
${OTHER~USR} | Das GitHub-Kürzel des anderen Benutzers im Team |
${usr1} | Das GitHub-Kürzel des 1. Benutzers |
${usr2} | Das GitHub-Kürzel des 2. Benutzers |
${sem} | Aktuelles Semester, z.B. ss17 |
${usr1} | Das GitHub-Kürzel des jeweiligen Benutzers |
Lern- und Aufgabenziele
- Sicherer Umgang in der Zusammenarbeit mit Git und Github
- Erste offizielle Abgabe ohne fachspezifischen Inhalt
Vorbereitung
Beide Teammmitglieder
- ... haben die Allgemeinen Informationen zur SYSLAB Umgebung durchgelesen und verstanden
- ... haben das syso-${sem}-grp${N}-Repository auf GitHub in ihren persönlichen Account geforked
- ... sind auf dem Gruppen-Linux-Container mit ihrem persönlichem Account eingeloggt
- ... haben ihren SSH-Key auf GitHub eingetragen
- ... haben die Master-Branch in ihren Forks auf Protected gesetzt und eingestellt dass sie für jeden RP mindestens ein Review benötigen
Aufgabe
Die Aufgabe wird von beiden Teammitgliedern gemeinsam gelöst, da jeder Benutzer einen Fork des Gruppen-Repositories anlegt.
Jedes Teammitglied protokolliert hierbei die getägiten Befehle zur Lösung der Aufgabe in der Datei hw0/${USR}.log
.
- Protokollieren Sie die vollständigen Befehle, nicht nur die Stubs die hier angegeben sind.
- Es sind nur die Befehle zu protokollieren die tatsächlich funktioniert haben und notwendig sind, nicht aber z.B. alle Fehlversuche mit den anfänglichen Schwierigkeiten mit
git
undsed
;-)
Team Mitglieder werden im Folgenden mit usr1 und usr2 referenziert. Falls nicht anders verlangt gelten die Aufgabenteile für beide Teammitglieder.
1. Klonen des Repository
Klonen Sie sich ihr Gruppen-Repository von ihrem Fork auf Github.
Hierzu verwenden Sie den Befehl git clone
.
Erstellen Sie eine hw0 branch.
Hierzu verwenden Sie git checkout -b hw0
.
Pushen Sie diese unverändert auf ihren Fork mit git push
.
Erstellen Sie eine hw0-${USR} branch.
Hierzu verwenden Sie git checkout -b hw0-${USR}
.
Pushen Sie diese unverändert auf ihren Fork mit git push
.
2. Bearbeiten Sie die README.md ihres Repositories
Hierzu verwenden Sie im Terminal beispielsweise vim
.
usr1: README.md Zeile 1 ändern
Verwenden Sie den Befehl sed
um in der README.md in der ersten Zeile den String Results durch grp${N} zu ersetzen.
usr2: README.md Zeile 2 hinzufügen
Verwenden Sie den Befehl sed
um in der README.md in der zweiten Zeile ihre beiden Github-Kürzel, getrennt mit einem Komma, einzutragen.
3. Rückspielen der Änderungen in ihren eigenen Fork
Benutzen Sie git add
und git commit
um die Änderungen an der README.md und ihrer Protokolldatei in git festzuhalten.
Pushen Sie die Änderungen nun in auf ihren jeweiligen Fork.
PR: ${USR}/syso-${sem}-grp${N}/hw0-${USR} -> ${OTHER~USR}/syso-${sem}-grp${N}/hw0
Erstellen Sie auf ihrem Fork einen Pull-Request von ${USR}/hw0-${USR} nach ${OTHER~USR}/hw0. Tragen Sie ${OTHER~USR} als Reviewer ein.
Review und Merge Prozess
Prüfen/Korrigieren Sie ihre Pull-Requests auf dem Fork von ${OTHER~USR} und nutzen Sie ggf. die Reject Funktion im Review falls Korrekturen nötig sind. Wenn beide PRs gut aussehen geben Sie jeweils ihr Approval und drücken den Merge Knopf.
4. Rückspielen der Änderung in den anderen Fork
Ähnlich wie im vorherigen Schritt erstellen Sie nun einen PR, aber gegen den Fork von ${OTHER~USR}. Erstellen Sie dazu einen Pull-Request von ${USR}/syso-${sem}-grp${N}/hw0 nach ${OTHER~USR}/syso-${sem}-grp${N}/hw0. Tragen Sie ${OTHER~USR} als Reviewer ein.
Review und Merge Prozess
Prüfen/Korrigieren Sie ihre Pull-Requests auf ihrem eigenen Fork und nutzen Sie ggf. die Reject Funktion im Review falls Korrekturen nötig sind. Wenn beide PRs gut aussehen geben Sie jeweils ihr Approval und drücken den Merge Knopf.
Verifikation
Verfizieren Sie dass beide Forks den gleichen Stand in hw0 haben.
4. usr1 ODER usr2: Abgabe PR
Eine/r erstellt nun den Pull-Request gegen ihr Upstream-Gruppenprojekt im SYSLAB Github des Kurses. Konkret also von ${USR}/syso-${sem}-grp${N}/hw0. Tragen Sie jeweils, je nach Verfügbarkeit im Kurs, Tutor/Dozent/Professor und ${OTHER~USR} als Reviewer ein.
Der Titel ihres Pull-Requests soll HW0: Abgabe lauten.