Git in Integrata-Seminaren – Teil 3

Verwendung von Git in Seminaren

Für Veranstaltungen mit Programmier-Übungen bietet es sich geradezu an, Git in Integrata-Seminaren einzusetzen. Die Vorteile liegen auf der Hand:

  • Referenten haben Zugriff auf die Musterlösung in verschiedenen Ständen und können Verbesserungen bzw. Fehler einspielen.
  • Referenten und Kunden haben für die Seminarinstallation einen simplen Zugriff für die Installation der Musterlösungen.
  • Mit Hilfe von Tags können Versionsstände der Broschüre direkt mit Versionsständen der Übungen verknüpft werden.
  • Die Teilnehmer des Seminars erhalten im Nachgang Zugriff auf die Musterlösungen. Auch hier können Fehler und Verbesserungen jederzeit gepflegt werden.

Repository-Organisation

Nachdem wir uns in Teil 1 mit den Grundlagen von Git und in Teil 2 mit dem Git-Plugin für Eclipse beschäftigt haben konzentrieren wir uns im Folgenden auf die Organisation des Repositories. Für jedes Seminar wird ein eigenes Repository angelegt, hier beispielsweise für das Seminar Docker und Java das Repository org.javacream.training.docker:

Das Repository für das Docker-Training

Das Repository besteht aus drei Branches:

  • initial kann vom Referenten als Ausgangsbasis des Praktikums benutzt werden.
  • master enthält die aktuellen Musterlösungen.
  • develop enthält alle Commits, die den aktuellen Stand des Praktikums definiert haben. Dieser Branch enthält somit alle Zwischenstände und soll die komplette Historie halten.

Neben den Branches existieren Tags, und zwar jeweils in Paaren. Der Name dieser Tags enthält die Versionsnummer der Broschüre:

  • <broschürenversion> tagged den Stand der Musterlösung für diese Broschürenversion
  • <broschürenversion>_initial tagged die, eventuell leere Praktikumsumgebung dieser Broschürenversion.

Die relevanten Stände des Praktikums befinden sich damit in initial und in master bzw. genauer: In den Tags.

Arbeiten im Seminar

Die im Folgenden dargestellte Arbeitsweise verlangt nicht, dass die Teilnehmer Git kennen und verwenden müssen! Nur der Referent nutzt die Möglichkeiten des Versionsverwaltungssystems.

Zur Vorbereitung der Praktikumsumgebung cloned sich der Referent am Einfachsten das gesamte Repository lokal auf seinen Referentenrechner. Dann wird der Tag, der den initialen Stand zur aktuellen Broschüre enthält ausgechecked.

git checkout  <broschürenversion>_initial

Alternativ kann über GitHub für einen Release auch eine Zip-Datei geladen werden.

Egal wie der initiale Stand erzeugt wurde: Dieser wird nun den Teilnehmern zur Verfügung gestellt.

Nun erzeugt sich der Referent an der Stelle dieses Tags einen neuen Branch, der für dieses Seminar verwendet werden soll. Als Namen verwende ich integrata_<startdatum_des_seminars>. Auf diesem Branch wird nun die Musterlösung für das Seminar fortlaufend ergänzt und relevante Stände werden mit sprechenden Commits gesichert. Der Seminarlauf wird somit auf diesem Branch in nachvollziehbarer Form abgebildet. Die Sourcen für die Muster können dem master-Branch entnommen werden. Zwischenstände findet der Referent bei Bedarf im develop-Branch. Dieser enthält ja alle jemals als relevant erachteten Stände.

Am Ende des Seminars befindet sich der Seminar-Branch auf dem Stand der Lösung für die durchgeführte Schulung. Dieser Stand muss selbstverständlich nicht exakt der Musterlösung entsprechen! Ganz im Gegenteil kann der Referent hier eigene Lösungswege gehen, Vertiefungen einführen oder aber auch nachrangige Themen weglassen.

Ressourcen für die Teilnehmer

Am Ende des Seminars erhalten die Teilnehmer

  • Den Ausgangsstand,
  • die in der Broschüre verwendete Musterlösung, also den Stand mit dem korrespondierenden Tag,
  • den Seminar-Stand.

Die ersten  beiden werden als Zip-Dateien verteilt, letzteres sinnvoll als Git-Repository: Die Teilnehmer sollen ja bei Bedarf auch die Zwischenstände nachvollziehen können. Die hierfür notwendigen Kenntnisse von Git sollten vorausgesetzt werden können oder werden vom Referenten kurz vermittelt. Hierzu kann vom Teilnehmer beispielsweise Eclipse mit dem Git-Plugin benutzt werden, wie es im zweiten Teil dieser Serie beschrieben wurde.

Ressourcen für den Seminar-Verantwortlichen

Sind im Rahmen des Seminars Verbesserungen, kreative Ideen oder Fehlerbehebungen erfolgt, so wird der Seminar-Branch als Git-Repository dem Seminar-Verantwortlichen zur Verfügung gestellt. Dies erfolgt aktuell über einen Filetransfer per Mail oder ähnlichem.

 

Seminare zum Thema

Dr. Rainer Sawitzki / Dr. Rainer Sawitzki

Nach seinem Studium der Physik und anschließender Promotion Wechsel in die IT-Branche. Seit mehr als 20 Jahren als Entwickler, Berater und Projektleiter vorwiegend im Bereich Java und JavaScript unterwegs. Parallel dazu in der Entwicklung und Durchführung von hochwertigen Seminaren für die Integrata im Einsatz.

Schreibe einen Kommentar