SAPUI5-Entwicklung mit Git: Versionskontrolle
Versionskontrolle mit Git ist in vielen Unternehmen inzwischen zu einem Standard im Softwareentwicklungsprozess geworden. Auch die SAP Cloud Plattform bietet für den Entwicklungsprozess von SAPUI5-Apps eine Git-Integration, von der vor allem größere Entwicklungsteams profitieren können. In diesem Beitrag möchte ich Ihnen neben den Grundlagen und Vorteilen der Versionskontrolle zudem erste Schritte in Richtung Git innerhalb der SAP Cloud Plattform zeigen.
Was ist Versionskontrolle?
Einfach gesagt ist ein Versionskontrollsystem (VKS) eine Art Datenbank. In dieser können Sie Momentaufnahmen eines Entwicklungsprojektes zu jedem beliebigen Zeitpunkt ablegen und historisieren. Ein Projekt wird in Git in einem sogenannten Repository verwaltet. Dieses Repository ist zentral abgelegt und kann nicht direkt bearbeitet werden. Git bietet zur Arbeit mit zentralen Repositories viele Schnittstellen an. Diese möchte ich im Folgenden kurz umreissen.
Um eine neue Version in einem Repository zu speichern, muss zunächst eine lokale Kopie des Repositories heruntergeladen werden. In diesem Fall wird das Repository auf den eigenen Rechner „geklont“. Durch das Klonen werden alle im Repository enthaltenen Dateien heruntergeladen und in einem sogenannten lokalen Repository abgelegt. Nun können Sie Änderungen am Projekt vornehmen, die allerdings nicht sofort im zentralen Repository ersichtlich werden. Die Änderungen müssen Sie zunächst im lokalen Repository auf dem Rechner „committen“. Ein Commit ist eine neue Version des Projekts, die Sie später im zentralen Repository hinterlegen. Um den Commit abschließen zu können, müssen Sie dann noch eine sogenannte Commit-Nachricht schreiben, die die vorgenommenen Änderungen am Projekt genauer beschreibt.
Schließlich kann der eben erstellte Commit über einen „Push“-Request in das zentrale Repository hochgeladen werden. Dort wird nun auch die zuvor nur lokal vorhandene neue Version des Projektes sichtbar. Auch den durchgeführten Commit können Sie in der Historie samt Commit-Nachricht einsehen. Um das lokale Repository auf dem aktuellsten Stand zu halten muss dieses nicht immer wieder geklont werden. Einmal initialisiert, bietet Git die Möglichkeit sogenannte „Pull“-Requests durchzuführen und das lokale Repository dadurch zu aktualisieren.
Versionskontrolle: Git und die Alternativen
Git selbst ist das populärste open-source-VKS, auf dem viele bekannte Produkthersteller aufbauen (GitHub, BitBucket, etc.). Die meisten Hersteller bieten für einzelne User oder kleinere Teams kostenlose Accounts an, die auf jeden Fall auch einen Blick wert sind. Auch in der SAP Cloud Plattform wird Git für die Versionierung von Projekten angeboten. So können neue Git-Repositories angelegt und innerhalb der SAP Web IDE bezogen und auch aktualisiert werden.
Welche Vorteile bringt ein VKS?
Ein VKS bringt die folgenden Vorteile mit sich:
Versionierung
Git ist in Sachen Versionierung sehr „schlau“. Es erkennt, welche Dateien bearbeitet oder gelöscht wurden. Dadurch müssen Sie beim nächsten Commit lediglich die bearbeiteten Dateien beachten.
Nachvollziehbarkeit
Durch den vorherigen Punkt wird zudem eine Nachvollziehbarkeit im Projekt möglich. Aus jedem Commit wird deutlich, welche Dateien und auch was sich darin geändert hat. Zudem wird durch die Commit-Nachricht beschrieben, was sich am Projekt geändert hat (neues Feature, Bugfix, etc.). Setzen Sie dies richtig um, können Sie über die Historie ganz genau nachvollziehen, was zu welchem Zeitpunkt im Projekt angepasst/geändert wurde.
Wiederherstellung
Mit jedem Commit wird auch eine neuer, herunterladbarer Stand im zentralen Repository angelegt. Nun kommt es nicht gerade selten vor, dass durch Änderungen Bugs in das Entwicklungsprojekt kommen. Um schnell und unproblematisch zu einem funktionierenden Stand zurückkehren zu können, können Sie einfach auf eine vorhergehende Version zurückspringen. Sie können den Fehler beseitigen und schließlich die neue und funktionierende Version in das zentrale Repository einspielen.
Git-Integration in der SAP Cloud Plattform
Schließlich möchte ich darauf eingehen, wie Sie innerhalb der SAP Cloud Plattform ein Git-Repository anlegen und einen ersten Commit über die Web IDE ausführen.
Step 1: Git-Repository anlegen
Um ein Git-Repository initial anzulegen, gibt es mehrere Wege. Wir legen das Repository für diesen Beitrag manuell an. Dazu wählen wir links im Menü den Punkt „Git Repositories“ aus und klicken auf „New Repository“:
Daraufhin erscheint ein Dialog, der uns nach dem Namen und einer Beschreibung für das Git-Repository fragt. Den Name des Repositories müssen Sie in Kleinbuchstaben angeben und das Häkchen unten aktiviert lassen. Mit der Anlage wird im Hintergrund führen Sie dann einen ersten Commit in das Repository aus:
Mit Bestätigung über „OK“ legen wir das Repository an und es erscheint in der Liste der Repositories. Über den Link zum Repository gelangen wir in die folgende Ansicht:
Folgendes verbirgt sich hinter den markierten Nummern:
- Über diesen Button können Sie direkt in die Web IDE abspringen und das Repository klonen.
- Dies ist der Link zum Repository, den Sie für manuelles Klonen verwenden können.
- Dieser Link führt Sie zur Historie des Git-Repositories. Hier können Sie alle vorgenommenen und gepushten Commits einsehen.
Wir klicken nun auf den Button „Web IDE“. Damit rufen wir die Web IDE auf und die Anwendung fragt uns, ob wir das eben angelegte Repository lokal in unseren Web IDE Workspace klonen möchten:
Wir bestätigen dies mit „Clone“. Den folgenden Dialog überspringen wir mit „Do it later“:
Ggf. bittet uns die SCP in diesem Schritt, unsere Mailadresse und unseren Namen anzugeben. Git nutzt diese Informationen, um einzelne Commits mit einem Autor zu versehen – daher sollten Sie diese in jedem Fall angeben.
Step 2: Ersten Commit über die Web IDE ausführen
Anschließend steht das Repository für die Arbeit innerhalb der Web IDE zur Verfügung. Der Projektordner unterscheidet sich von den üblichen Ordnern dadurch, dass Sie rechts neben dem Ordnernamen den aktuell ausgecheckten Branch des lokalen Repositories sehen. Ohne tiefer auf das Branching in Git einzugehen, möchte ich Sie dazu auf diesen Beitrag verweisen.
Zudem stehen links neben den Dateien und Ordnern kleine Symbole, die anzeigen, ob jemand die Dateien bearbeitet (hinzugefügt, verändert, gelöscht) hat.
In diesem Fall hat jemand eine neue Datei „README.md“ hinzugefügt, die eine einfache Beschreibung beinhaltet.
Mit diesen Änderungen können wir nun den ersten Commit ausführen. Hierzu speichern wir alle Dateien und öffnen die Git-Pane an der rechten Seite:
In dem Bereich „Changes“ innerhalb der Git-Pane erhalten wir eine Übersicht aller geänderten Dateien im lokalen Repository und müssen angeben, welche der Dateien wir für den Commit vorsehen möchten. Wir markieren alle Dateien, tragen unsere Commit-Nachricht ein und wählen unten anschließend „Commit and Push“ und den Eintrag „origin/master“ aus, um den Commit direkt auch in das zentrale Repository hochzuladen.
War alles erfolgreich, können wir wieder in die Repository-Übersicht zurückkehren (siehe oben) und über den dritten Punkt zur Repository-Historie navigieren.
Hier sehen wir nun unseren letzten Commit und auch den ersten Commit bei der Anlage des Repositories.
Damit haben wir nun den grundlegenden Git-Prozess innerhalb der SCP kennengelernt, auf dem Sie nun aufbauen können. Wenn Sie noch weitere Fragen zur Arbeit mit Git haben und wie sie das Tool für Ihren Entwicklungsprozess nutzen können, dann kommen Sie jederzeit gerne auf mich zu.