Was ist Git?
Git ist ein kostenloses Tool zur Versionsverwaltung von Dateien. Dieses Tool wird über die SAP-Grenzen heraus benutzt und ist weit in der Softwareentwicklung verbreitet. Git ist (im Gegensatz zur Versionierung in der SE80) ein verteiltes Verwaltungssystem. Das bedeutet, dass es nicht ein Dokument gibt, an dem alle Entwickler arbeiten, sondern alle Mitarbeiter mit lokalen Kopien arbeiten und diese dann auf einen Git-Server hochladen.
Git-Workflow
Wie läuft die Versionsverwaltung mit Git genau ab? Zunächst einmal gibt es das Git-Repository („Git-Server“), das immer die aktuellen Versionen sowie die älteren Versionen speichert. Ein Entwickler kann sich die aktuelle Version von diesem zentralen Repository herunterladen, diese bei sich lokal bearbeiten und diese wieder hochladen. Ein anderer Entwickler kann sich danach dieselbe Datei vom Server ziehen und sieht in dieser Version auch die Änderungen von Entwickler A. Dieser Workflow ist in folgendem Bild auch noch einmal dargestellt:
Das Hochladen auf den Server nennt sich im Git-Kontext „Push“, das Herunterladen vom Server „Pull“. Die obenstehende Abbildung ist etwas vereinfacht da hier nur das grundsätzliche Prinzip erläutert werden soll. Es fehlt dort beispielsweise das lokale Repository. Parallel zu dem zentralen Repository hat jeder Benutzer auch ein lokales Repository. Ein „Commit“ schiebt die Änderungen der Dateien in das lokale Repository und der „Push“ lädt das Repository dann auf das zentrale Repository hoch. Vor einem „Push“ sollte deshalb ein „Commit“ durchgeführt werden.
Vorteile & Nachteile
Um die Vor- und Nachteile von Git zu erörtern müssen wir erst einmal klären, welche Alternativen es zu Git gibt. Ich vergleiche in diesem Abschnitt Git mit der Versionsverwaltung in der SE80, da diese auch im SAP-Kontext angesiedelt ist und dort ein gegenteiliger Ansatz verfolgt wird.
Der große Vorteil von Git ist, dass Dateien gleichzeitig von mehreren Benutzern bearbeitet werden können. Das liegt daran, dass jeder Benutzer mit seiner lokalen Kopie der Datei arbeitet und nicht mit der „Live-Version“ auf dem Server und diese sperrt. Diese Parallelität kann die Effizienz der Entwicklungen deutlich erhöhen.
Allerdings kann sich aus diesem Vorteil auch ein Nachteil ableiten lassen: Was passiert, wenn mehrere Benutzer dieselbe Datei ändern und dann auf den Server hochladen wollen? Grundsätzlich ist das erstmal kein Problem. Git ist glücklicherweise relativ klug und kann bei einfachen Änderungen, die nicht in den selben Zeilen geschehen, die Dateien automatisch zusammen „mergen“. Falls dies für Git nicht möglich ist, gibt es einen „Merge-Konflikt“. Der Entwickler, der seine Änderungen zuletzt gepusht hat, hat dann die Aufgabe diesen Konflikt zu lösen. Dies erfordert meist dann auch eine Kommunikation mit dem Entwickler, der die vorherigen Änderungen gemacht hat.
Ein weiterer „Nachteil“ ist auch, dass die Projektmitglieder beim Einsatz von Git besonders verantwortungsbewusst arbeiten müssen. Vergisst man, sich die aktuelle Version über Pull vom Git-Repository herunterzuladen, so kann es passieren, dass man eine alte Version verändert und diese dann als aktuell auf den Server hochlädt. Diese Situation ist vergleichbar mit der Überholerproblematik im ABAP-Bereich. Grundsätzlich gilt daher die Regel: Vor dem Arbeitsbeginn einmal einen Pull durchführen und nach dem Arbeitsende die Änderungen mit einem Push für alle anderen verfügbar machen.
Verwendung in der SAP Web IDE / SAP Cloud Platform
Jetzt zeige ich dir, wie du Git in deinen UI5 Apps verwenden kannst. Die SAP Cloud Platform und die SAP Web IDE bieten von Haus aus eine Git-Funktionalität, die es uns relativ einfach macht, unsere Apps zu versionieren.
Git Repository in der SAP Cloud Platform anlegen
Logge dich zunächst in deinen Cloud Platform Account ein und navigiere zu deinem Subaccount.
Klicke dann auf Repositories -> Git Repositories -> New Repository, gib einen Namen und eine Beschreibung ein und klicke dann auf OK:
Jetzt ist dein Repository angelegt! Dein Repository wird in der Übersicht angezeigt. Wenn du auf den Namen klickst, gelangst du auf die Übersichtsseite deines Repositories.
Git Repository in der SAP Web IDE verwenden
Wenn du dort auf den Button „Web IDE“ klickst gelangst du direkt in der SAP Web IDE.
Klicke im darauffolgenden Popup einfach auf „Clone“.
Wenn im Anschluss noch ein Popup mit der Überschrift „Git Ignore System Files“ erscheint, klicke einfach auf „Commit and push“.
Danach erscheint ein Popup, in dem du aufgefordert wirst, deine Benutzerdaten einzugeben.
Git Repository in der SAP Web IDE verwenden
Es öffnet sich die SAP Web IDE und du solltest dort ein neues Projekt mit dem Namen deines Repositories sehen. Du erkennst Projekte mit einer Verbindung zum Git immer daran, dass vor dem Projektnamen ein Symbol (z.B. Punkt, Plus, Minus) und hinter dem Projektnamen ein grauer kleiner Text (in den meisten Fällen „[master]“) angezeigt wird. Klicke im rechten Bildschirmbereich auf das „Git Pane“. Es sollte sich rechts am Bildschirmrand ein Bereich öffnen.
In diesem Bereich siehst du auch die bisher angesprochenen Funktionalitäten wie „Pull“, „Commit“ und „Push“.
Commit/Push: Eine Neue Datei erstellen / Bestehende Datei bearbeiten
Lege im Projekt wie gewohnt eine neue Datei an. Du wirst sehen, dass sie automatisch rechts im Git Pane angezeigt wird.
Du kannst mit dem Häkchen unter „Stage“ angeben, ob die Datei mit zum Server hochgeladen werden soll, wenn du einen Push ausführst. Das Häkchen kannst du dort setzen. Als nächstes musst du noch eine „Commit message“ angeben. Gib hier einen möglichst hilfreichen Text an, der beschreibt, was du in dieser Version geändert hast. Dies ist auch für andere Benutzer sichtbar und hilfreich um Änderungen besser nachvollziehen zu können. Erst nachdem du eine Commit message angelegt hast, sind die Buttons „Commit“, „Commit and Push“ und „Push“ nicht mehr ausgegraut. Klicke abschließend auf „Commit and Push“ und dann auf „origin/master“. Deine Änderungen werden jetzt automatisch ins zentrale Repository transportiert.
Ob der Commit und der Push erfolgreich waren, zeigt ein Popup im oberen rechten Bildschirmrand an.
Pull: Aktuelle Version vom Server herunterladen
Nehmen wir einmal an, ein anderer Benutzer hat die Datei bearbeitet und wir wollen diese Änderung bei uns sehen. Dazu musst du einfach nur im Git Pane auf „Pull“ klicken. Dadurch werden alle aktuellen Daten heruntergeladen. Auch hier zeigt das Popup oben rechts den Status des Pull-Befehls an. Achte darauf, dass die „Changes“-Tabelle im Git Pane immer leer ist, wenn du einen Pull durchführst. Ansonsten können deine Änderungen vom Server überschrieben werden.
In diesem kleinen Beispiel hast du eigentlich alles gelernt, was du für die Zusammenarbeit bei einer UI5-App mit mehreren Entwicklern benötigst: Du weißt wie man ein Repository anlegt, wie man es bei sich in der Web IDE einrichtet, wie man Dateien in das zentrale Repository lädt und wie man diese wieder herunterlädt. Natürlich gibt es noch eine Menge weitere Features von Git. In diesem Blogbeitrag habe ich aber ganz bewusst nur die Basisfeatures beschrieben, um auch zu zeigen, wie einfach das Zusammenarbeiten mit Git sein kann.
Einsatzszenarien
Grundsätzlich kann man UI5-Apps natürlich auch ohne Git entwickeln. Ich würde jedoch sagen, dass man sich schnellstmöglich angewöhnen sollte, Git in seinen UI5-Projekten einzusetzen. Selbst wenn man der einzige Entwickler in einem Projekt ist, ist es extrem hilfreich, wenn man zu einer älteren Version zurückspringen und sich den Unterschied anzeigen lassen kann.
Weiterführende Informationen
In diesem Beitrag habe ich die grundlegenden Funktionalitäten von Git und die Integration in den UI5-Entwicklungsworkflow erläutert. Es gibt neben diesen Funktionen noch eine Menge andere Themen im Bereich Git und UI5. Zum Beispiel, wie man Merge-Konflikte löst. Oder was das „master“ bedeutet. Oder die Symbole (Plus, Minus, Punkt) links neben dem Projektnamen. Diese Themen findest du in weiteren Blog-Beiträgen zum Thema Git und UI5 auf erpcouch.
Wie sieht es bei dir aus? Verwendest du Git in deinen UI5-Projekten? Wie gefällt dir die Einbindung von Git in die Web IDE / Cloud Platform. Hast du noch weitere unbeantwortete Fragen? Schreib unten gerne einen Kommentar oder mir direkt eine Mail an adrian@erpcou.ch
Toller Beitrag! Hat mir dein Einsatz von Git vereinfacht. Danke Adrian
[…] an einer App zu arbeiten. Dafür kannst du das Versionierungstool Git benutzen, das im Beitrag SAP UI5 Apps mit Git versionieren: Eine Einführung vorgestellt […]