Christoph Lordieck
30. August 2019

abapGit

ABAP Git abapGit ist ein Git-Client für die ABAP-Entwicklung, der vollständig in ABAP entwickelt wurde. Bei Git handelt es sich um ein verteiltes Versionskontrollsystem, mit dem in vielen anderen Programmiersprachen bereits seit vielen Jahren sowohl die Synchronisierung als auch die Versionierung von verteilten Entwicklungen in Software-Projekten ermöglicht wird. Mit abapGit haben Entwickler die Möglichkeit, eine Git-Versionskontrolle mit dem ABAP-Applikationsserver zu verbinden und dadurch ABAP-Entwicklungsobjekte in einem Git-Repository anzulegen.

Der Aufbau von abapGit

Ein Git-System besteht in der Regel aus einem oder mehreren lokalen Git-Repositorys und einem Git-Server, auf dem ein für alle Entwickler erreichbares Git-Repository die Entwicklungsobjekte speichert. Im Falle einer ABAP-Entwicklung kann der Git-Server von einer der bekannten Plattformen wie Github, bitbucket o. ä. zur Verfügung gestellt werden oder ein unternehmenseigener sein.

Lokale Repositorys bei ABAP-Projekten sind die Applikationsserver, auf denen abapGit installiert und mit dem der Git-Server synchronisiert wurde.

Für die Software-Entwicklung ermöglicht Git eine nicht-lineare Entwicklung – Developer arbeiten daher nicht immer mit dem gleichen Stand der Software. Damit diese Vorgehensweise funktioniert, sind 2 Komponenten notwendig:

  • Über sogenanntes „Branching“ (deutsch: Verzweigung) wird eine Kopie des Quelltextes erzeugt, der separat bearbeitet werden kann.
  • Sind die Entwicklungen an diesem separaten Zweig abgeschlossen, können diese über sogenanntes „Merging“ (deutsch: Zusammenführen) in den Ursprungszweig integriert werden. Mögliche Konflikte werden dabei gemeldet – der Entwickler kann sie dann mit Git-Features beheben.
  • Auf diese Weise wird der ursprüngliche Zweig nach und nach weiterentwickelt, getestet und erst nach einem vollständigen und erfolgreichen Test in den Masterbranch überführt. Dieser enthält den aktuell produktiven Code der Software, der als „Master“ bezeichnet wird
Abb 1. Beim „Branching“ wird die Programmierung einer Software auf unterschiedlichen Zweigen vorgenommen, die im „Merging“ zu einer Entwicklung zusammengeführt werden.

Abb 1. Beim „Branching“ wird die Programmierung einer Software auf unterschiedlichen Zweigen vorgenommen, die im „Merging“ zu einer Entwicklung zusammengeführt werden.

Über die Funktionen von abapGit werden sowohl Branches als auch Merges beauftragt und die Entwicklungsobjekte des ABAP-Applikationsservers auf den Git-Server synchronisiert.

ABAP-Pakete dienen als Container für abapGit – sie werden dem Repository hinzugefügt.

Howto ABAPGit einrichten

abapGit einrichten [Howto]

In diesem How-to erkläre ich Ihnen Schritt für Schritt, wie Sie abapGit bei sich einrichten und davon profitieren können.

Vorteile von abapGit

abapGit bietet Entwicklern als verteilte Versionskontrolle viele Vorteile:

  • Mehrere Entwickler können unabhängig voneinander an verschiedenen Funktionen eines Programms arbeiten, ohne sich dabei gegenseitig in die Quere zu kommen.
  • Es existiert zu jeder Zeit ein konsistenter Master-Branch.
  • Das System verfügt über ein ganzes Repository, sodass eine Menge von Entwicklungsobjekten auf eine vorhergegangene Version zurückgesetzt werden kann.
  • Über abapGit können bestehende Open-Source-Projekte aus der ABAP-Community auf dem eigenen Applikationsserver genutzt werden – dotabap.org bietet hierzu eine Liste veröffentlichter Open-Source-APAP-Entwicklungen, die ständig wächst.

Hierdurch werden viele zentrale Herausforderungen in der ABAP-Entwicklung leichter gemeistert. Bei einer fehlgeschlagenen Entwicklung können Verantwortliche die Objekte zum Beispiel in ihre ursprüngliche Version zurücksetzen.

Mittlerweile gibt es auch ein Konzept für ein „git-enabled CTS“: Es ermöglicht Entwicklern, ababGit an Continuous-Integration-Tools (CI-Tools) anzubinden. Continuous Integration beschreibt das fortlaufende Zusammenfügen von verschiedenen Komponenten zu einer Software und ist neben den ABAP Development Tools (ADTs) for Eclipse eine weitere Möglichkeit, ABAP-Projekte zu realisieren.

Das System bietet Entwicklern Vorteile, bringt aber auch Herausforderungen mit sich. Um „Branching“ wirklich realisieren zu können, benötigt jeder ABAP-Entwickler theoretisch seine eigene SAP-Entwicklungsumgebung und ein eigenes SAP-Entwicklungssystem. Für On-Premise-Systeme ist dieser Umstand sehr ressourcenintensiv. Mit der ABAP-Cloud-Plattform könnte diese Herausforderung zwar umgangen werden – allerdings ist sie in vielen Unternehmen noch keine Option.

Beitragsbild-So sparen Sie mit Testmanagement Zeit und Ressourcen
In diesem Webinar zeigen wir Ihnen, wie Sie mit einem systematischen Testmanagement schnell und gezielt Fehler minimieren und die Qualität Ihrer Software erhöhen können. 

abapGIT Voraussetzungen

Um abapGit nutzen zu können, müssen Unternehmen über einen SAP-Netweaver-Applikationsserver mit SAP BASIS Version 702 oder höher verfügen.

Schneller Einstieg

Verantwortliche, die nicht über einen unternehmenseigenen Git-Server verfügen, können ABAP-Entwicklungen auch über Plattformen wie GitHub realisieren. Damit abapGit mit GitHub kommunizieren kann, muss ein TLS-Protokoll (Transport-Layer-Security-Protokoll) verwendet werden. Verantwortliche installieren hierzu einige Root-Zertifikate mit der Transaktion „STRUST“. Mit einem Testprogramm kann dann geprüft werden, ob die Verbindung zwischen abapGit und GitHub funktioniert. Je nachdem, welche Plattform Nutzer für ihre ABAP-Projekte nutzen wollen, sind andere Root-Zertifikate notwendig.

ABAP-Objekte auf GitHub übertragen

Für das erste ABAP-Projekt mit GitHub erstellen Verantwortliche zunächst einen Account und legen über die Startseite oder den Plus-Button im Menü ein neues Projekt an, das sie benennen und kurz beschreiben. Mit einem Klick auf „Create repository“ wird das Projekt dann erstellt.

Dem Repository müssen nun die SAP-Objekte hinzugefügt werden – damit die Metadaten des Objektes später erkannt werden können, müssen Anwender hierzu das Programm ZABPGIT nutzen, das über die Transaktion SE38 ausgeführt wird.

Um GitHub auszustatten, muss das Objekt über den Link „Clone“ im abapGit-Menü kopiert werden. In einem Pop notieren Verantwortliche dann die Git-Clone-URL und ein Paket. Dieses kann über den Button „Create Package“ angelegt und mit Objekten ausgestattet werden.

Über den Link „Stage“ auf der nachfolgenden Übersichtsseite können die Objekte nun in GitHub übertragen werden. Bevor der Übertragungsprozess beginnen kann, müssen Anwender ihre Anmeldedaten und das Kennwort für GitHub eingeben. Ob die Übertragung funktioniert hat, wird Anwendern direkt auf der Plattform angezeigt.

Fazit

abapGit ist ein Git-Client für die ABAP-Entwicklung und stellt damit ein Versionskontrollsystem für ABAP dar. Entwickler können mit der Anwendung eine Git-Versionskontrolle mit dem ABAP-Applikationsserver verbinden und ABAP-Entwicklungsobjekte in einem Git-Repository ablegen.

Um abapGit verwenden zu können, benötigen Verantwortliche einen Git-Server und ein für jeden Entwickler erreichbares Git-Repository bzw. ein oder mehrere lokale Git-Repositorys. Diese dienen für die Speicherung der Entwicklungsobjekte. Unternehmen, die nicht über einen eigenen Git-Server verfügen, können ABAP-Projekte mit abapGit über Plattformen wie GitHub umsetzen. Eine weitere Voraussetzung für die Verwendung des Systems ist das Vorhandensein eines SAP-Netweaver-Applikationsservers mit SAP BASIS Version 702 oder höher.

abapGit ermöglicht Developern eine nicht-lineare Software-Entwicklung: Entwickler müssen also nicht immer mit dem gleichen Stand der Software arbeiten. Hierzu fertigen sie eine Kopie des Quelltextes an und bearbeiten diesen auf einem separaten Branch. Haben sie die fertige Entwicklung abgeschlossen, wird diese wieder in ihren Ursprungs-Branch integriert. Wenn das neu entwickelte Feature erfolgreich getestet wurde, wird es in den aktuell produktiven Code eingepflegt.

Unternehmen profitieren von dieser Vorgehensweise, weil Entwickler unabhängig voneinander an verschiedenen Funktionen des Programms arbeiten können, ohne sich gegenseitig zu behindern. Zudem können Entwicklungsobjekte über das Repository bei erfolglosen Programmierungen auf ihre ursprüngliche Version zurückgesetzt werden.

Ein weiterer Vorteil des Systems ist die Möglichkeit, auf bestehende Open-Source-Projekte aus der ABAP-Community zuzugreifen und für eigene Zwecke zu nutzen. Entwickler sind jederzeit imstande, eigene Open-Source-Projekte zu veröffentlichen oder andere zu unterstützen. Unternehmensinterne Sicherheits-Richtlinien sollten hierbei beachtet werden. Kontaktieren Sie uns gerne, wenn Sie weitere Fragen zum Thema abapGit haben. Gerne besprechen wir Ihr Anliegen in einem persönlichen Gespräch.

Lordieck

Websession: abapGit

Sollten Sie Fragen zu uns und unserer Arbeit oder konkret zu Umstellungsprojekten haben, dann vereinbaren Sie eine kostenlose Websession mit uns.

FAQ

Was ist abapGit?

abapGit ist ein Git-Client für die ABAP-Entwicklung, der vollständig in ABAP entwickelt wurde. Bei Git handelt es sich um ein verteiltes Versionskontrollsystem, mit dem in vielen anderen Programmiersprachen bereits seit vielen Jahren sowohl die Synchronisierung als auch die Versionierung von verteilten Entwicklungen in Software-Projekten ermöglicht wird.

Welche Voraussetzungen sind für abapGit notwendig?

abapGit benötigt einen SAP-Netweaver-Applikationsserver mit SAP BASIS Version 702 oder höher.

Christoph Lordieck

Christoph Lordieck

Als Bereichsleiter SAP Entwicklung berate ich Unternehmen rund um das Thema SAP Individualentwicklung. Einige Jahre Projekt- und Umsetzungserfahrung haben meinen Wissenshunger noch nicht gestillt und ich suche ständig nach neuen Themen und Entwicklungen im ABAP-Umfeld.

Sie haben Fragen? Kontaktieren Sie mich!


Verwandte Beiträge

Jeder Entwickler ist schon einmal durch ein ähnliches Szenario gelaufen: Während dem Anpassen von Source Code wurde unbeabsichtigt eine Variablenbezeichnung, Funktion oder Datei gelöscht, anschließend gespeichert und nicht transportiert. In […]

weiterlesen

In IT-Organisationen gewinnt die Philosophie DevOps zunehmend an Popularität. Das Kunstwort aus „Development“ = Softwareentwicklung und „Operations“ = Softwarebetrieb stellt bestehende Strukturen in Unternehmen auf den Prüfstand. Was DevOps eigentlich […]

weiterlesen

In den letzten zehn Jahren hat sich bei den SAP-Kernthemen einiges getan. HANA-Datenbanken verändern Grundprinzipien der bisherigen Datenhaltung durch zeilenbasiertes Speichern und Core Data Services. Fiori ersetzt Reports und Dynpros […]

weiterlesen

Unsere Produkte zu abapGit

Was müssen ABAP Entwickler wissen, wenn sie Applikationen für die SAP HANA Datenbank vorbereiten, entwickeln und optimieren wollen?

Mehr Informationen

Haben Sie ein gutes Gefühl was die Code-Qualität Ihrer Kundenentwicklungen im SAP angeht? Wenn bei Lesbarkeit, Dokumentation, Modularisierung oder systematischer Transport- & Releasestrategie noch Luft nach oben ist, dann sollten […]

Mehr Informationen

In der SAP Welt findet aktuell eine schnelle Entwicklung statt. Dadurch entstehen nicht nur neue Projekte und Anforderungen für SAP Kunden – sondern als logische Konsequenz auch für SAP Entwickler.

Mehr Informationen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice