Versionsverwaltung: Apache Subversion vs. Git
Ich beobachte in letzter Zeit bei der Software-Versionsverwaltung einen zunehmenden Trend von Apache Subversion hin zu Git. Mein Bauchgefühl sagt mir jedoch, dass dieser Wechsel in vielen Fällen nicht zielführend ist.
Ich versuche es so zu fassen: Apache Subversion ist entstanden als Nachfolger von CVS mit technisch besserer Unterstützung der gleichen Anwendungsfälle. Git ist hingegen entstanden, weil die Anwendungsfälle im Rahmen der Linux-Kernel-Entwicklung sich stark davon unterscheiden.
Aus meiner Sicht sollte die Entscheidung für oder gegen ein Werkzeug auf Basis der gegebenen Anforderungen gefällt werden – und nicht aufgrund technischer Eigenschaften oder persönlichen Empfindens. Um das zu unterstützen versuche ich im Folgenden die fachlichen Unterschiede auf die aus meiner Sicht drei wesentlichsten Punkte zu reduzieren. Die Beurteilung überlasse ich jedem selbst.
Produktstrategie
Gibt es eine gemeinsame Strategie für die Weiterentwicklung des Produkts, die von allen akzeptiert wird? Oder gibt es mehrere Parteien, die unterschiedliche Zielen verfolgen?
Worauf liegt der Fokus der Versionsverwaltung: Auf dem einfachen Umgang mit einem Entwicklungszweig? Oder auf der Unterstützung paralleler und unabhängiger Entwicklungszweige?
Zusammenarbeit
Wie sieht die Zusammenarbeit der Entwickler aus? Ist diese durch gegenseitige Wertschätzung und Vertrauen geprägt? Oder steht vielmehr das Individuum im Mittelpunkt, das Beiträge anderer zur eigenen Arbeit kontrolliert, darüber entscheidet und dafür Verantwortung übernimmt?
Worauf liegt der Fokus der Versionsverwaltung: Auf Transparenz und dem gleichberechtigten Zugang zu allen Informationen? Oder auf expliziter Steuerung des Inhalts und der Historie?
Wertschöpfung
Wodurch entstehen die wesentlichen Werte im Projekt? Durch funktionale Erweiterungen wie neue Features? Oder durch nicht-funktionale Eigenschaften wie Qualität, Robustheit und Sicherheit?
Worauf liegt der Fokus der Versionsverwaltung: Auf Agilität beziehungsweise der schnellen Wertschöpfung? Oder auf ausgefeilten und mächtigen Prozessen?