Während des Studiums habe ich auf einer HP Workstation zum ersten Mal mit einer Versionskontrollsoftware gearbeitet*): RCS.
Bedient wurde das ganze ausschliesslich auf der Kommandozeile, es wurden nur einzelne Textdateien lokal verwaltet…
Mit dem RCS-Nachfolger CVS bin ich dann durch Open Source-Projekte wie Newtonlink und Dia in Kontakt gekommen. Dadurch, dass ganze Quelltextbäume zentral auf einem Server verwaltet wurden und durch grafische Oberflächen wie WinCVS oder das Konqueror-Plugin, habe ich eine Versionsverwaltung schätzen gelernt.
Seit die “binäre Deltakompression” in CVSNT zur Verfügung stand konnte man sogar GIS-Daten (Shapefiles) effektiv verwalten.
Allerdings waren Einsteiger oft überfordert und so war ich begeistert, als die Entwicklung von Subversion (SVN) begann: Ein Programm, dass die CVS-Funktionalität bot, aber deutlich einfacher zu bedienen war. Mit der exzellenten Integration von TortoiseSVN in den Explorer und “Checkout-Links” war es auch von Nichtprogrammierern zu nutzen.
Als die Quelltextverwaltung des Dia-Projektes vor einigen Jahren von CVS auf Subversion umgestellt wurde, war ich bereits ein versierter SVN-Nutzer.
Jetzt ist es wieder soweit: Die Dia-Quelltextverwaltung wurde von SVN auf git migriert und ich habe gerade meinen ersten “git push” durchgeführt.
Als git-Anfänger kann ich noch wenig zu den Vorteilen gegenüber Subversion sagen. Dadurch, dass ganze Repositories “geklont” werden, kann eine Versionierung lokal, ohne Verbindung zu Server, erfolgen: Eine Multi-Master-Replikation für versionierte Quelltextverzeichnisse. Wer oft auf einem Laptop ohne Internetverbindung arbeitet, wird das zu schätzen wissen.
Trotz all der Fortschritte in der 20-jährigen Geschichte der Versionskontrollsoftware: Der entscheidende Erfolgsfaktor beim Einsatz der Software ist eine gute Koordination: Wenn die zwei Teammitglieder dieselbe Zeile bzw. bei Binärdateien dieselbe Datei bearbeiten und es zum gefürchteten Konfllikt kommt, hat meistens einer der beiden seine Zeit vertan. Die Software, die diesen Missstand sichtbar macht trägt keine Schuld daran.
*) Ich erinnere mich dunkel, zuvor auf dem Amiga mit RCS experimentiert zu haben, diese Experimente waren aber nicht sonderlich erfolgreich.