Version Control Systems – ein Ratgeber

19.04.2024
Von 
Bob Violino arbeitet als freier IT-Journalist für InfoWorld und Network World in den USA.
Versionskontrollsysteme sind im Softwarezeitalter missionskritisch. Lesen Sie, was die Tools leisten sollten und welche Anbieter relevant sind.
Ohne agile, skalierbare und performante Versionskontrollsysteme wird's schwer mit dem Softwareerfolg.
Ohne agile, skalierbare und performante Versionskontrollsysteme wird's schwer mit dem Softwareerfolg.
Foto: lilik ferri yanto | shutterstock.com

Version Control Systems (VCS) unterstützen Entwicklungs-Teams dabei, sämtliche Änderungen am Quellcode im Zeitverlauf zu verfolgen. Das ermöglicht nicht nur zu prüfen, wer wann was geändert hat sondern auch einen Rollback auf frühere Versionen - und etabliert eine Single Source of Truth.

Im Folgenden lesen Sie:

  • wie sich der Markt für Versionskontrollsysteme entwickelt,

  • was entsprechende Lösungen leisten sollten und

  • welche Version Control Systems derzeit relevant sind.

Der Markt für Versionskontrollsysteme

Wir blicken zunächst auf einige Zahlen und Einschätzungen zur künftigen Marktentwicklung und werfen anschließend einen Blick auf den aktuellen Stand der Entwicklung sowie neu aufkommende Trends im Bereich der Versionskontrollsysteme.

Prognose

Die Bedeutung der Versionskontrolle steigt in einer Welt, in der Software und Daten essenzielle Güter sind und Produkte immer schneller auf den Markt gebracht werden müssen, zunehmend. Dabei entwickeln sich auch die Lösungen in diesem Bereich kontinuierlich weiter, um den steigenden Anforderungen an Flexibilität, Skalierbarkeit und Performance gerecht zu werden. Stichwort GenAI.

Jim Mercer, Program Vice President für die Bereiche Software Development, DevOps & DevSecOps bei IDC, setzt das Thema in einen Kontext: "Version Control oder Source Control Management war ursprünglich für den Quellcode von Softwareentwicklern gedacht. Da wir uns aber in Richtung eines Everything-as-Code-Ansatzes bewegen, steigt auch die Zahl der Anwender von Versionskontrollsystemen."

Christopher Condo, Principal Analyst bei Forrester Research, sieht das ähnlich: "Dass die Nachfrage sowohl bei traditioneller Software als auch in neuen Bereichen wie Infrastructure- und Policy as a Code oder Low-Code weiter wächst, hat einen direkten Impact auf die Nachfrage nach Versionskontrollsystemen - schließlich sind diese für jede Art von Programmcode nötig."

Auch die Berater von Acumen Research & Consulting prophezeihen dem VCS-Markt in einer Analyse fortgesetztes Wachstum. Demnach soll dieser auf globaler Ebene bis zum Jahr 2030 auf 2,68 Milliarden Dollar anschwellen (2021: 982 Millionen Dollar) - mit einer jährlichen Wachstumsrate von 11,9 Prozent. Laut den Analysten sollen dabei vor allem die zunehmend populären Cloud-basierten Versionskontrollsysteme als Wachstumstreiber fungieren.

Status Quo

Laut IDC-Mann Mercer wurden in den letzten zwanzig Jahren diverse Version Control Systems entwickelt - etwa Subversion, ClearCase, Mercurial und andere. "Die meisten Teams bevorzugen allerdings Lösungen, die auf dem Open-Source-Projekt Git basieren", erklärt er. Hier seien die wichtigsten Optionen GitHub, GitLab und Bitbucket. Das Gros der übrigen Versionskontrollsysteme habe angesichts der Git-Dominanz entweder entsprechende Brücken oder Integrationen geschaffen."

Mercer zufolge haben sich VCS wie GitLab und GitHub dank zahlreicher hinzugekommener Funktionen inzwischen zu vollwertigen Devops-Plattformen entwickelt. "Zudem haben sich Version Control Systems auch mit Blick auf die Sicherheit und die Möglichkeit, Richtlinien zu erstellen, weiterentwickelt."

Auch Thomas Murphy, Senior Director Analyst bei Gartner, attestiert GitHub, GitLab und Bitbucket eine dramatische Weiterentwicklung: "Diese Plattformen wollen die 'moderne Entwicklerumgebung' sein: Sie kümmern sich um den Build, managen das Projekt sowie die Dokumentation und können auch noch die Software verpacken, testen und bereitstellen."

Trends

Der Gartner-Chefanalyst merkt an, dass diese Plattformen inzwischen auch generative KI-Assistenten einsetzen, um bei Code-Aktualisierung und -Erstellung sowie anderen Tasks zu unterstützen. Allerdings bereite Generative AI - und insbesondere die Art und Weise, wie die der Technologie zugrundeliegenden Large Language Models (LLMs) trainiert werden - einigen Anwendern zunehmend Sorgen, führt Forrester-Analyst Condo an: "Tools wie GitHub Copilot nutzen Quellcode aus öffentlichen Versionskontrollsystemen, die sie hosten, um ihr Modell zu trainieren."

Die Anwender sollten sich deshalb genau überlegen, ob sie damit einverstanden sind oder es vorziehen, ihren Code nicht zu KI-Trainingsmaterial zu machen, so der Analyst. Er warnt: "Unternehmen, die sensiblen Algorithmen nutzen oder Angst um ihr geistiges Eigentum haben, sollten davon die Finger lassen."

Ein weiterer Trend ist die zunehmende Verlagerung hin zu Cloud-basierten Versionskontrollsystemen. Laut den Experten von Acumen Research & Consulting erschließt das Benefits wie:

  • Echtzeit-Collaboration,

  • Zugriff von jedem Ort sowie zu jeder Zeit und

  • niedrigere Anschaffungskosten (im Vergleich zu On-Premises-Systemen).

"GitHub, GitLab und andere Online-Repositories ermöglichen es Unternehmen, ihre Software-as-a-Service-Produkte zu nutzen, ohne ein selbstgehostetes Versionskontrollsystem betreiben zu müssen. Das erleichtert die länderübergreifende Zusammenarbeit", erläutert Condo. Unternehmen, die sich dafür entscheiden, ihr eigenes Versionskontrollsystem On-Premises zu betreiben, sollten nach Empfehlung des Forrester-Analysten in jedem Fall über die dafür notwendigen Skills und Ressourcen verfügen - zumindest wenn sie damit erfolgreich sein wollten.

Das sollte die Versionskontrolle leisten

Grundsätzlich ermöglicht ein Version Control System es den Entwicklern, verschiedene Versionen von Quellcode, Konfigurationen und anderen Artefakten zu managen, die sich im Zeitverlauf verändern. Je nach Art und Größe sowie Prioritäten des Unternehmens sind jedoch auch weitere wichtige Funktionen relevant. Dazu gehören laut IDC-Experte Mercer und Forrester-Analyst Condo:

  • Skalierbarkeit: Version Control Systems sollten Devs und andere Anwender in die Lage versetzen, Code domänen- und plattformübergreifend zu managen - insbesondere, wenn es sich um wachsende Unternehmen mit expandierenden Entwicklungsinitiativen handelt.

  • Performance: Software für die Versionskontrolle sollte überall dort, wo sie in einem Unternehmen eingesetzt wird, gut funktionieren.

  • Branching: VCS sollten zudem über BRanching-Funktionen verfügen. Das ermöglicht, Objekte im Rahmen der Versionskontrolle zu duplizieren, so dass jedes nachfolgende Objekt separat und parallel geändert werden kann. Branches mit Trunks mergen zu können, ist diesbezüglich eine weitere, wichtige Funktion.

  • Collaboration: Für moderne Versionskontrollsysteme sind Funktionen für die Zusammenarbeit unerlässlich. Schließlich steigt die Zahl der verteilt arbeitenden Dev-Teams - was effektive Collaboration umso wichtiger macht. VCS stellen dabei sicher, dass alle mit der gleichen Quelle arbeiten, unabhängig davon, ob es sich um eine einzelne Codebasis oder mehrere Branches handelt.

  • APIs: Auch die Erweiterbarkeit über sichere Schnittstellen ist ein wichtiges Merkmal bei Versionskontrollsystemen. Die sind nämlich zunehmend das System der Wahl, um Automatisierungen in den Bereichen Testing, Deployment und Release zu orchestrieren und in die Produktion zu überführen. Sichere APIs sind dabei nötig, um VCS und Release Management Tools zu integrieren und Continuous Delivery zu erreichen.

  • Datenintegrität: Anwender sollten sich auf die Versionshistorie verlassen können und je nach Bedarf die Version im Zeitverlauf wählen können, die sie benötigen.

Die wichtigsten Version Control Systems

Abschließend ein kurzer Überblick über die derzeit relevanten Versionskontrollsysteme und ihre wesentlichen Features.

Apache Subversion

Dieses Softwareversionierungs- und Versionskontrollsystem wird als Open Source Software unter der Apache-Lizenz vertrieben. Entwickler können Apache Subversion nutzen, um aktuelle und historische Versionen von Dateien (einschließlich Quellcode), Webseiten und Dokumentation zu managen.

Bitbucket

Dieser Git-basierte Quellcode-Repository-Hosting-Service gehört zum Portfolio von Atlassian. Bitbucket bietet sowohl kommerzielle Versionen (mit verschiedenen Preisplänen) als auch kostenlose Konten (mit einer unbegrenzten Anzahl privater Repositories) an. Dieses Tool kommt hauptsächlich für Source Code und Code-Reviews zum Einsatz.

Git

Das populärste Version Control System ist ein kostenloses, quelloffenes Devops-Tool, das auch genutzt werden kann, um Source Code zu managen. Git eignet sich dabei für Projekte jeder Größe und ermöglicht es unter anderem mehreren Devs, bei nicht-linearen Entwicklungsprojekten zu kollaborieren.

GitHub

Die Plattform ermöglicht Developern, Code zu erstellen, zu managen und gemeinsam zu nutzen. GitHub kombiniert dabei die verteilte Versionskontrolle von Git mit Access Control, Bug Tracking, Task Management und anderen Funktionen. Darüber hinaus kann die Plattform auch ein ausgedehntes Open-Source-Repository bieten und verfügt über Tools, um Softwareprojekte und Communities zu managen. Ein breites Partner-Portfolio versorgt Anwender zudem mit Add-In-Funktionen.

GitLab

Die Basis für GitLab bildet, wie die Nomenklatur bereits nahelegt, Git. Dieser quelloffene Repository-Manager kommt in erster Linie zu Collaboration- und Versionskontroll-Zwecken zum Einsatz.

Mercurial

Dieses kostenlose, verteilte Source-Control-Management-Tool befähigt Softwareentwickler, Projekte jeder Größe zu managen. Mercurial wurde zudem vor allem mit Blick auf Plattformunabhängigkeit entwickelt.

Perforce

Diese Versionskontrollplattform unterstützt ebenfalls Git, bietet aber mit "Helix Core" ein proprietäres Produkt. Das Tool wird genutzt, um Änderungen an Quellcode, digitalen Assets und großen Binärdateien zu tracken und zu managen.

Team Foundation Version Control

Bei dieser Plattform von Microsoft handelt es sich um ein zentralisiertes Version Control System. Mit Team Foundation Version Control befähigt Anwender zum Beispiel, granulare Berechtigungen zu vergeben und den Zugriff bis auf Dateiebene zu beschränken. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.