Über den Tod von Subversion – und den Hype um Git

Hartmut Schlosser

Hat das Versionskontrollsystem Subversion ausgedient? Richard Fine lässt in seinem Blogeintrag „It’s time to stop using Subversion“ seinem Unmut über Subversion freien Lauf und beschreibt, was mit Subversion seiner Meinung nach falsch läuft:

  • Das Erste Problem bestehe darin, dass Subversion keinen Unterschied zwischen der Erzeugung (create) und Veröffentlichung (publish) eines Commits mache. Veränderungen müssen stets im zentralen Repository abgelegt werden, was den Prozess sehr verlangsame und das System anfällig für Netzwerk-Fehler mache, wenn beispielsweise beim Upload in die Cloud die Verbindung abreißt.
  • Zweitens gebe es bei Subversion immer wieder Probleme beim Mergen von Branches. Die dafür angelegte mergeinfo property sei fehleranfällig und der Einbezug fremder Repositories nur bedingt möglich.
  • Drittens müsse bei einer etwaigen Reorganisation der Dateienstruktur auch Subversion angepasst werden. Wer mit Tools zur Verwaltung der Dateien arbeite, habe hier schlechte Karten, da die Werkzeuge Subversion oft nicht mit einbezögen.
Git statt Subversion?

Und was schlägt Fine zur Lösung dieser Probleme vor? Git!

Für das aus dem Linux-Bereich stammende verteilte Versionskontrollsystem Git stellen laut Fine die oben genannten Hindernisse kein Problem dar. Dennoch gebe es einige kritische Punkte auch beim Einsatz von Git zu bedenken:

  • Da bei Git jeder Entwickler eine Kopie des kompletten Repositories auf seinem Rechner habe, erhöhe sich der Speicherbedarf.
  • Git tracke Dateien auf Basis ihres Inhalts und weniger auf Basis der Path-Informationen. Dies mache es manchmal schwierig, dem Verlauf von Binary Files korrekt zu folgen, da auch minimale Veränderungen beim Komprimieren große Auswirkungen auf den Content haben können. Git erkenne in manchen Fällen nicht mehr, dass es sich um dieselbe Datei handele.
  • Da das Mergen von Binary Files in SCM-Systemen nicht möglich sei, bestehe eine gängige Praxis darin, Veränderungen an Binary Files zu verbieten. Das Sperren von Dateien sei aber bei Git Out-of-the-Box nicht möglich, da es keine Autorität gebe, die Vorgaben über gesperrte und freie Dateien mache.
Fazit

Trotz dieser Kritikpunkte konstatiert Fine: Die Nutzung von Git habe seinen Workflow deutlich verbessert. Anstatt an groß angelegten Veränderungen zu arbeiten, die abschließend zentral ins Repository geladen werden, tätige er nun viel häufiger kleine, logisch abgeschlossene Commits. Auch sei die Angst verschwunden, neue Features und Lösungswege auszuprobieren, etwa in lokalen Branches. Dabei könne man bei Bedarf zu einem späteren Zeitpunkt auch auf die gescheiterten Versuche zurückkommen.

Fine zieht deshalb das markige Fazit:

Subversion is dead. It’s just taking a bit of time for the rigor mortis to kick in. Richard Fine

Ist Subversion am Ende?

Subversion, das das wohl immer noch am weitesten verbreitete SCM im Java-Bereich ist, muss sich in letzter Zeit einige Kritik gefallen lassen. Tatsächlich häufen sich die Anzeichen, dass die Konkurrenten aus dem Lager der verteilten Systeme immer mehr an Popularität gewinnen. Temporärer Hype und technologische (R)Evolution? Welche Erfahrungen haben Sie mit Git und Subversion gemacht?

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.