Was ist Versionskontrolle?

Prozesse und Methodologie Häufig gestellte Fragen

Was ist Versionskontrolle??

Als Entwickler haben Sie sicherlich schon von Source Code Control (SCC) gehört. Wenn Sie allein arbeiten, müssen Sie Quellcode nicht mit anderen Entwicklern teilen, und die Verwendung von SCC ist in der Regel unnötig. Bei der Teamarbeit müssen Sie jedoch Quellcode gemeinsam nutzen.

Sie könnten sagen: „Das ist einfach: Alle Quellcodes auf ein Netzwerklaufwerk legen und mehrere Entwickler können damit arbeiten?" Ja, das ist eine mögliche Lösung. Doch was geschieht, wenn zwei Entwickler dieselbe Datei ändern? Richtig – die Änderungen eines von ihnen gehen verloren. Versionskontrollsysteme helfen, dieses Problem zu vermeiden.

Die Idee besteht darin, aktuell hinzugefügte Quellcodes auf einem Server zu speichern und diese nicht direkt zu ändern. Jeder Entwickler erhält stattdessen eine eigene Kopie. Wenn ein Entwickler eine Datei ändern möchte, führt er ein Checkout durch (teilt anderen mit, dass er die Datei ändern wird); nach Abschluss der Änderung lädt er die Datei auf dem Server hoch (oder checkt sie ein). Das System löst Konflikte (wenn zwei Benutzer dieselbe Datei ändern) automatisch auf Zeilenebene auf – wenn beispielsweise ein Entwickler die oberen Zeilen und ein anderer die unteren ändert, wird die Datei automatisch zusammengeführt. Wenn sie dieselben Zeilen ändern, muss der Entwickler, der die Änderungen zuletzt hochlädt, den Konflikt manuell lösen; dies kommt jedoch sehr selten vor.

Dies ist die Hauptfunktion eines Versionskontrollsystems. Darüber hinaus bieten Versionskontrollsysteme weitere nützliche Funktionen wie Versionsvergleiche (visuell), Rollback, Benachrichtigungen, Etiketten, Branches, Verlauf und Sperren. Dank dieser Funktionen ist die Verwendung von Versionskontrolle auch für einzelne Entwickler hilfreich, da sie manuelle Backups verschiedener Versionen des Quellcodes überflüssig macht.


Comments