Tutorial 4: Version Control, Code Review

ASE WS 2023/24

Was Du können bzw. verstanden haben solltest:

  • Grundlagen Versionskontrolle mit Git auf der Kommandozeile (Repo einrichten oder klonen, Commits, Push/Pull)
  • Zugriff auf git.ur.de

Ihr könnt die Aufgaben auf Eurer lokalen Shell erledigen, wenn dort Git installiert ist.

Oder: als Nutzer root auf einem 'disposable root server' via segfault.net.

ssh root@segfault.net # Password is 'segfault'

Achtung: Der Server ist nicht sicher - keine vertraulichen Infos/Passwörter dort eintippen

Erster Schritt auf dem Server: Informationen zu Netzwerk-Schnittstellen prophylaktisch in einen Text-Editor kopieren

Zweiter Schritt: tmate installieren und ausführen.

apt install tmate
tmate

tmate startet eine tmux-Session und gibt Pfade/Befehle aus, mit denen man der Session remote beitreten kann. Diese Infos am Besten auch in einem Texteditor speichern und 'q' drücken.

Finde heraus, was folgende Befehle machen:

Bearbeitet zu zweit die Git-Übungen von Julia Evans

Aufgabe:

Notwendige Vorkenntnisse: Git Basics

(Raphael demonstriert ein bisschen was zu GitLab und CI/CD)

Aufgabe (Zweiergruppe):

  • lest die GitLab-Dokumentation zu CI/CD
  • Lest jeweils den Code im Building-Manager-Projekt der anderen Person und schlagt Änderungen vor (z.B. Kommentare, Refactoring):
    • erzeugt jeweils einen neuen Feature-Branch und checkt diesen aus
    • nehmt Eure Änderungen vor
    • verwendet sinnvolle Commit-Messages
    • erzeugt einen Merge-Request
    • reviewt die Merge-Requests der anderen Person und mergt die Feature-Branches in den Main-Branch
    • führt diesen Prozess einmal über das UI und einmal über die Kommandozeile durch (Merge Request dann informell)
  • Baut eine CI/CD-Pipeline, die automatisch die Dokumentation der Anwendung erzeugt und Tests laufen lässt. (Tipp: verwendet das Python-Template von GitLab)

Git ist inzwischen das meistverbreitete Werkzeug zur Versionskontrolle. Es gibt allerdings einige Alternativen, die eleganter, benutzerfreundlicher und/oder performanter sind.

Beispiele:

Aufgaben:

  • Lies Hacker-News-Kommentare zu diesen Systemen und fasse die wichtigsten Aspekte in Stichpunkten zusammen
  • Installiere Fossil und Mercurial, klone ein existierendes Repository und mache einen lokalen Commit in einer Datei. Vergleiche Laufzeit und Speicherbedarf informell.

Weiterführende Quellen: