Engineering: Gemeinsam entwickeln mit Git

Bei der Software für Versionsverwaltung 'Git' sprechen funktionale Einschränkungen gegen einen Einsatz im professionellen Umfeld. Damit ist jetzt Schluss: Software-Add-ons machen das beliebte Open-Source-Tool unternehmenstauglich.

Software-Add-ons, Perforce Bildquelle: © git-scm.com; Fotolia/nd3000 / Computer&AUTOMATION

Mit der Digitalisierung ist zweifellos ein goldenes Zeitalter für Software-Entwickler angebrochen. Durch Megatrends wie Industrie 4.0 wird Software zunehmend auch in den Fabrik­hallen allgegenwärtig: Maschinen müssen vernetzt, Kommunikationsprotokolle entwickelt, SPS-Steuerungen angepasst werden. Der Bedarf an kompetenten Entwicklern ist daher hoch wie nie – und nicht selten konfrontieren diese ihre ­potenziellen Arbeitgeber schon bei der Erstanstellung mit Bedingungen, etwa im künftigen Berufsalltag mit dem Entwicklungswerkzeug ihrer Wahl arbeiten zu dürfen. Ganz oben auf der Beliebtheitsskala findet sich dabei das Open-Source-Tool Git: Mit einer Nutzungsrate von laut Gartner knapp 30 % gehören DVCS-Lösungen (für die verteilte Versionskontrolle) wie Git aktuell zu den am weitesten verbreiteten Entwicklertools. 

Git wurde ursprünglich von Linus Torvalds für die Versionierung des Linux-Kernels entwickelt und hat auch dank GitHub (eine Online-Hosting-Lösung, die heutzutage große Teile der Open-Source-Projekte verwaltet) weite Verbreitung gefunden. Git speichert Änderungen als Knoten in einem DAG (Directed Acyclic Graph) ab, und identifiziert diese mit einem kryptografischen Schlüssel. Jedes Projekt in Git wird in einem eigenen sogenannten ‚Repository‘ gespeichert. Ein Repository enthält nicht nur alle Dateien eines Projektes, sondern auch die gesamte Historie des Projektes. Ein Anwender lädt (‚clone‘) das gesamte Repository von einer zentralen Kopie in den lokalen Arbeitsbereich, fügt lokal Änderungen hinzu und schickt diese Änderungen dann wieder zurück zur zentralen Version.

Während Anwender an Git vor allem dessen Offenheit sowie die Möglichkeit schätzen, mit einem lokalen R­epository arbeiten zu können, erweisen sich seine konzeptuellen und funktionalen Beschränkungen im Unternehmenskontext unter Umständen als problematisch. So arbeitet Git ab einer bestimmten Repository-Größe nicht mehr mit bestmöglicher Effizienz, große Dateien und nicht-text­basierte Assets werden nur eingeschränkt beziehungsweise gar nicht unterstützt. Auch bezüglich Nachverfolgbarkeit, Fehlerbehebung und Sicherheit kann die Lösung den Anfor­derungen moderner Software-Entwicklung nicht uneingeschränkt gerecht werden. Wer hat wann welche Änderungen am Quellcode vorgenommen und warum? Welche Änderung führte zu einem Fehler? Wie lässt sich das geistige Eigentum bestmöglich gegen Verlust oder Diebstahl von innen absichern? Auf Fragen wie diese kann Git keine Antworten liefern, denn dafür ist das Werkzeug nie konzipiert worden.

Um dem Spannungsfeld zwischen den Vorlieben der Entwickler auf der einen und den Anforderungen des Unternehmens auf der anderen Seite gerecht zu werden, bedarf es daher einer Möglichkeit, die bestehenden Einschränkungen von Git durch Erweiterungen und neue Funktionen aufzulösen. Git muss zu einer flexiblen, leistungsstarken und teamorientierten Lösung für eine effiziente Software-Eentwicklung werden – zu einer Art zentralem ‚Facebook für Entwickler‘.