Versionskontrolle mit Git sollte zum täglich Brot eines jeden Web-Entwicklers und damit natürlich auch eines jeden SAPUI5-Entwicklers gehören. Die Realität im Projektalltag sieht jedoch sehr häufig ganz anders aus.
Besonders in der SAP Web IDE stellt Git Projektteams oft vor mehr Probleme, als dass es welche löst. Doch woran liegt das eigentlich? Zunächst muss man zugeben, dass das Git Pane der SAP Web IDE nicht besonders intuitiv gestaltet wurde und dem Entwickler wenig visuelle Hilfen bietet, um nachzuvollziehen was genau er durch welche Aktion bewirkt. Darüber hinaus existiert bei sehr vielen Entwicklern ein grundsätzliches Verständnisproblem wie genau Git funktioniert, wie es sich von zentralen Versionskontrollen unterscheidet und wo die Vorteile einer dezentralen Versionsverwaltung liegen, obwohl diese gewisse Abläufe auf den ersten Blick komplexer erscheinen lässt.
Ziel dieser Blog-Serie ist es, diese Verständnisprobleme zunächst auszuräumen um danach Schritt für Schritt die Git-Techniken vorzustellen, die SAPUI5-Projekte mittels Git zum Erfolg führen!
Zentrale vs. dezentrale Versionskontrolle


Die zentrale Versionsverwaltung basiert auf dem Konzept eines einzigen Repositiory’s auf dem die Versionen gespeichert werden und für alle Entwickler zugänglich gemacht sind. Die bekanntesten Beispiele für Versionierungssoftware, die auf diesem Konzept basieren sind CVS, SVN, Clearcase sowie klassische ABAP Entwicklung auf SAP Netweaver.
Git hingegen basiert auf dem Prinzip der dezentralen Versionsverwaltung. Das bedeutet, dass jeder Entwickler ein eigenes, individuelles Repository besitzt. Dadurch ist es ihnen nicht mehr nur möglich Versionen und Branches zusammenzuführen (Merge), sondern sie sind nun sogar dazu in der Lage gesamte Repositories zu fusionieren. Das macht das gesamte Konzept selbstverständlich etwas komplizierter, da es nun sowohl Befehle zum Ändern des lokalen, als auch externer Repositories gibt. Gleichzeitig ermöglicht es den Entwicklern aber eine sehr viel flexiblere und unabhängigere Arbeitsweise, da sie sowohl untereinander, als auch mit dem zentralen Repository synchronisieren können.
Häufig haben Entwickler im SAPUI5-Umfeld einen ABAP-Hintergund. Sie sind dann an die klassisch-zentrale Versionsverwaltung der SAP GUI gewöhnt die nach dem oben skizzierten Muster arbeitet. Solche Entwickler haben erfahrungsgemäß die größten Startschwierigkeiten mit Git in der SAP Web IDE, da sie beispielsweise unter einem Commit in der zentralen Versionsverwaltung etwas grundlegend anderes verstanden wird, als in der dezentralen. Während in der “zentralen Welt” ein Commit dazu dient jegliche Änderungen mit dem zentralen Repository zu synchronisieren, kann man in Git ein Commit praktisch als ein Synonym für “Version” sehen. Diese Version kann nun selbstverständlich in dem lokalen oder in dem zentralen Repository liegen. Ähnlich verhält es sich mit Branches. Ein Branch in Git ist nämlich nichts anderes als ein Zeiger auf einen bestimmten Commit, bzw. eine Version. Das mag zunächst verwirrend sein, doch wenn ihr diese Blog-Serie die nächsten Tage aufmerksam verfolgt werden euch all diese Besonderheiten der Entwicklung mit Git in Fleisch und Blut übergehen.
Also, bleibt dabei und bis bald 🙂
Hier geht´s zum zweiten Teil dieses Blogs. Er behandelt Stage, Commit, Stash und Revert.
Du interessierst dich für Fiori und hast Lust coole Projekte mit uns zu machen? Wir suchen dich! Schau doch mal in unserer Stellenbeschreibung vorbei.