hg, bzr und git als svn superclient

written by Martin H├Ącker on

Ein langer Traum ist in Erf├╝llung gegangen - alle Versionskontrollsysteme (hg, bzr, git und nat├╝rlich svn) unterst├╝tzen endlich das Reden mit einem Subversion-Server.

Das bedeutet, man kann jetzt SVN als Lingua Franca mit allen verteilten Versionskontrollsystemen einsetzen um einen gemeinsamen Server zu haben von dem alle pullen und pushen k├Ânnen. Oder kurz gesagt: Wenn man SVN als Server hat, kann jeder benutzen was ihm pers├Ânlich am meisten liegt.

Das funktioniert nat├╝rlich noch alles nicht perfekt - aber es f├Ąngt an.

Und daher hab ich mal aus Spa├č ein Projekt mit jedem der VCS ausgecheckt und bin etwas ├╝berrascht von den Ergebnissen:

  • bzr git und svn haben den root des Projekts einfach als gro├če Ordner-Hierarchie ausgecheckt, so wie das in svn eben abgebildet ist.
  • hg hat als einziges ohne Zusatz-Optionen erkannt das es trunk, branches und tags gibt und das auf die entsprechenden nativen Konzepte (branches) abgebildet. (Das m├╝sste mit mehr Aufwand aber mit bzr und git auch gehen).
  • Der Import hat schon mal recht unterschiedlich lange gedauert:
    • bzr: 20 min
    • git: 14 min
    • svn: 7 min
    • hg: 7 min (sogar drei Sekunden schneller als svn! :)
  • Logischerweise sind damit die Repositories auch v├Âllig unterschiedlich gro├č:
    • bzr: 83 MB
    • git: 93 MB
    • svn: 162 MB (Zweimal die Gr├Â├če des ganze Source-Codes aller tags und branches, also wie erwartet)
    • hg: 5.2 MB (├╝berraschend - angeblich steckt da die ganze History drin - so richtig glauben kann ich das aber noch nicht. Vom Platz her ist das etwa das doppelte den alleine der trunk als checkout braucht)

Hier die Kommandos die ich abgeschickt habe (mit den Laufzeit Ergebnissen)

bzr clone http://python-nose.googlecode.com/svn nose-bzr:: 177,62s user 27,00s system 16% cpu 20:17,34 total git svn clone http://python-nose.googlecode.com/svn nose-git:: 57,63s user 130,80s system 22% cpu 14:02,33 total svn co http://python-nose.googlecode.com/svn nose:: 9,13s user 19,77s system 6% cpu 6:58,31 total hg svnclone http://python-nose.googlecode.com/svn nose-hg:: 27,15s user 12,25s system 9% cpu 6:57,76 total

So viel kann man daraus nat├╝rlich nicht schlie├čen - aber mir gef├Ąllt dass man jetzt mit allen VCS an Subversion herankommt und der Weg auf dem hgsubversion ist scheint mir schon mal sehr gut zu sein. :)