<< Themensammlung IT-Entwicklung

Versionskontrolle

Wer Software entwickelt, wird nicht umhin kommen, Dateien oder gar ganze Verzeichnisse zu aktualisieren. Damit dies nicht, vor allem wenn mehrere Leute an einem Projekt arbeiten, in ein unüberschaubares Chaos ausartet, hat sich in der Software-Entwicklung die so genannte Versionskontrolle durchgesetzt, die es ermöglicht, strukturiert und abgesichert zu Werke zu gehen.

Wie funktioniert Versionskontrolle?

Auf einem Server werden alle Projektdaten zentral gespeichert und protokolliert - dieser Speicherort heißt Repository. Jeder, der an dem betreffenden Projekt mitarbeitet, hat mit Hilfe eines Desktop-Clients (lokal installierte Software) Zugang zu diesem Repository und kann Projektdateien herunterladen (auschecken) und nach dem Bearbeiten wieder in das Repository einchecken. Alle Veränderungen werden hierbei dokumentiert.

Vorteile der Versionskontrolle

  • Alte Datei-Versionen werden nicht "überschrieben", sondern werden separat abgelegt. So ist es möglich, auf vorherige Entwicklungsstadien zurückzugreifen.
  • Die Entwicklungsstufen der Software sind genau dokumentiert (Changelog) - sobald eine neue Version "eingecheckt" wurde, wird festgehalten, welche Veränderungen in welchen Dateien stattfanden, es wird weiterhin dokumentiert, wer wann Dateien eingecheckt hat. Entwickler sind zusätzlich angehalten, ihre Änderungen beim Einchecken noch einmal kurz zu erläutern, um die Recherche nach Versionen zu erleichtern.
  • Entwickler haben ständig Zugriff auf die Projektdaten und sind immer auf dem neuesten Stand.
  • Es ist möglich, bestimmte alternative Entwicklungsstränge zu fahren (Fork) sowie verschiedene Dateiversionen zusammenzuführen (Merge). Dabei gleicht die Versionskontrolle die verschiedenen Änderungen am Dokument ab und wenn sich diese nicht überschneiden, werden sie in ein gemeinsames Dokument verschmolzen.

Wie richtet man eine Versionskontrolle ein?

Für die üblichen OpenSource Apache Server existiert eine Gratis-Software namens Subversion oder kurz SVN (http://subversiion.apache.org). Diese wird auf einem Server eingerichtet und eine Dokumentenstruktur etabliert. Mit Hilfe einer lokalen Clientsoftware können sich nun alle Beteiligten mit der Subversion verbinden. Diese Programme sind zumeist auch gratis, bekannte Beispiele etwa sind:

  • TortoiseSVN (Windows)
  • SmartSVN (MacOS)
  • rapidsvn (Linux)

SaaS-Angebote

Auch kommerzielle Anbieter haben den Vorteil der Versionierung erkannt und bieten Cloud-Dienste an, die nicht nur der Protokollierung und Speicherung dienen, sondern die gemeinsame Software-Entwicklung um den "Social-Faktor" erweitern. Die US-amerikanische Plattform "Github" etwa versucht, die Kommunikation unter den Usern zu erleichtern und so den Austausch von Wissen und Code zu fördern.

Die bekannte Website "Sourceforge" besteht auch aus einem Online-Repository, ist aber eher für quelloffene Projekte angelegt. Obwohl Sourceforge kommerzialisiert wurde, wird auch ein OpenSource-Strang namens FusionForge weiterentwickelt.

Schlagworte zu diesem Artikel

Das könnte Sie auch interessieren

Förderland-Newsletter

Wissen für Gründer und Unternehmer