Versionskontrolle nach Subversion


Bisher verwendete ich Subversion zur Versionskontrolle und war damit auch meist zufrieden, bis auf drei Dinge, die mich jedes Mal ziemlich nerven:

  • Das Umbenennen oder Verschieben von Dateien ist umständlich
  • Branches, oder besser, das Merging: Zwar ist das Erstellen von Branches nicht sonderlich kompliziert, aber das zurückmergen von größeren Änderungen kann eine Plage werden
  • Das Ignorieren bestimmter Dateien ist umständlich

Nach all dem Hype um DVCS habe ich mir nun doch mal diese Systeme angeschaut. Am Ende muss ich sagen, dass ich Git oder Bazaar schon sehr interessant finde und plane, darauf umzusteigen. Aber welches von beiden?

Mein Ziel ist, den gleichen Workflow beizubehalten: Ein zentrales Repository, das automatisch per Backup-Skript gesichert wird. Dennoch sollen auf allen Rechnern einfach lokal Änderungen zu machen sein, die dann auch sofort lokal per Commit hinzugefügt werden können. So dass ich auch weiterarbeiten kann, wenn ich mal offline bin. Und das Branchen und Mergen soll wesentlich einfacher werden, damit eben diese Arbeiten später wieder einfach zurückgeführt werden ins zentrale Repository.

Ein paar sehr interessante Links zu diesem Thema sind die folgenden:



Vorteile Git
  • sehr schnell
  • Sicherheit des Repositories wegen kryptographischer Validierung des Contents
  • unterstützt Zugriff per SSH
  • cool
Nachteile Git
  • unterstützt meinen Workflow nur bedingt (mind. 2 Schritte pro commit notwendig)
  • relativ komplizierte Befehle. Vor allem, wenn man von Subversion kommt, ist einiges doch ganz anders. Von daher ist die Einarbeitungszeit deutlich länger
  • läuft nicht nativ unter Windows (das alte Leid Sad )
  • Revisions-Bezeichner sind SHA1-Werte - das ist nicht sonderlich intuitiv, wenn auch kein großes Problem
Vorteile Bazaar
  • einfache Kommandos, meist die gleichen wie bei Subversion
  • unterstützt ziemlich viele verschiedene Workflows, unter anderem auch den von mir gewünschten
  • unterstützt Zugriff per SSH
  • Windows-Unterstützung
  • Python-Bindings
  • Es gibt viele übersichtliche grafische Frontends. Zwar sind GUIs in der täglichen Arbeit langsamer, aber zur Ansicht der Historie, vor allem von Branches, doch hilfreich als Zusatzoption
  • sehr robustes Umbenennen oder Verschieben von Dateien
Nachteile Bazaar
  • nicht so cool Wink


Zugegeben, diese Auflistung ist doch recht subjektiv und ich finde es mysteriös, dass ich nicht einen richtigen Minuspunkt für Bazaar gefunden habe, aber es scheint doch alles für Bazaar zu stimmen. Mal schauen, wie es sich im produktiven Betrieb schlägt und ob ich nicht doch ein paar Kleinigkeiten finde.