Auswahl Source Code Version Control Software

Da ich gelegentlich mal zu Hause oder auf der Arbeit ein wenig herumprogrammiere, möchte ich gerne ein source code control system verwenden. Damit verhindere ich, daß ich einmal funktionierende Software weiterkaputtentwickle, außerdem kann ich damit funktionierende Softwarestände weitergeben und bei Rückmeldungen rekonstruieren. SCCS, RSC und CVS, die ich noch „von früher“ kenne sind völlig out und haben außerdem einige Nachteile.

Für mich eher ein Anti-Feature einer neuen source control software ist die Notwendigkeit eines Servers. Software Mega-Featuritis will ich auch nicht, das System soll einfach sein. Die Team-Features sind mir für meine „ein Mann Show“ auch egal. Geschwindigkeit ist Nebensache.

Vielmehr soll „mein“ System einfach zu benutzen sein, gut mit der lokalen Festplatte funktionieren ohne einen zentralen Server verwenden zu müssen (aber können). Hilfreich wäre, wenn das System auch noch funktioniert, wenn derselbe (lokale) Verzeichnisbaum über verschiedene Rechner repliziert ist (z.B. via Live Mesh oder Windows Live FolderShare). Verwendbarkeit unter Windows ist wichtig, Linux, möglichst auch FreeBSD, sollte gegeben sein, eine grafische Benutzungsschnittstelle wäre nett, Einbindung in Microsoft Visual Studio auch, das Fehlen ist aber kein KO-Kriterium. Mir wäre auch lieb, nur ein Revision-Verzeichnis per Projekt zu haben, nicht in jedem Verzeichnis ein Unterverzeichnis (wie z.B. bei CVS). Kostenlos ist vollklar.

Irgendwann letztens habe ich mir also angesehen:

Microsoft Team Foundation Server/Visual Studio Team System: natürlich eine Spitzen-Einbindung in die Microsoft-Produkte, aber €€€-Payware und Bloatware, kommt nicht in Frage.

Subversion: „Industrie-Standard“, braucht aber einen Server. Gut ist die Menge an freien Hosting-Angeboten und die Windows-Shell Einbindung.

git: ein heißer Kandidat, krankt aber an Kompliziertheit; vor allem ist Windows als Platform nicht gut unterstützt.

Mercurial: ähnlich git, mehr auf Performance für große Projekte getrimmt. Windows wird besser unterstützt. In python implementiert, was an sich sympathisch ist, aber im Windows-Umfeld eher nachteilig gesehen werden kann.

Monotone: ähnlich wie vor, aber vielleicht nicht so ausgereift. Soll ein Server zum Einsatz kommen, ist das System peer-2-peer orientiert und verwendet nur das eigene netsync Protokoll. Aufsetzen eines Projekts ist kompliziert und umfangreich.

Bazaar: einfacher als alle vorgenannten, für Linux und Windows, welches alle obigen Kriterien erfüllt. Angepriesen als „Version control for human beings“, welches „just works“. Auch in python implementiert.

Eine kurze Zusammenstellung findet sich auch hier.

Kürzlich habe ich auch noch darcs entdeckt, aber allein die Programmiersprache (Haskel) und die schwächliche Windows-Unterstützung (implementiert via cygwin) sind ein no-go, die Fortführung aus dem Wissenschaftsbereich fraglich.

Ich habe mich für Bazaar entschieden und bin damit soweit zufrieden. Einfach, straight-forward, no-frills. Es gibt sogar eine (experimentelle) Windows Explorer Kontextmenüeinbindung. Ein Manko sind Unix-basierte Projekte, die symbolische Links verwenden: das ist zwar durch Bazaar unterstützt, aber unter Windows nicht implementiert, so daß einige Plugins unter Windows mangels Installierbarkeit nicht funktionieren.

Ein bißchen Werbung, insbesondere konzentriert auf Benutzbarkeit, warum man Bazaar statt der anderen genannten Tools verwenden sollte, findet sich hier.

Advertisements
Both comments and trackbacks are currently closed.

Kommentare

  • The Producer  On 18 Oktober 2008 at 12:37

    Nunja, Tortoise SVN laeuft auch ganz nett lokal auch ohne Server 🙂

  • doct  On 19 Oktober 2008 at 16:27

    Ah ja, habe gerade diesen Artikel gefunden. Lese ich richtig, ein Repository für alle Projekte? Geht nur mit TortoiseSVN/nicht offiziell supported/wie geht’s von der Kommandozeile?

    Ach nöööh.

    Ein (subjektiver) Vorteil von Mercurial, git, darcs und Bazaar gegenüber Subversion ist das dezentrale Konzept, welches mir gut gefällt.

    Habe in der Vergangenheit auch schon mal VCS trees verwurschelt. Bazaar verspricht Einfachheit und „das richtige zu tun“. Bislang zumindest habe ich mir damit noch nicht in den Fuß geschossen.

    Gut zusammenfassender Kommentar:
    In summary, SVN may be a better choice if you have large binary files, projects with subprojects, need partial checkout support or more mature integration with 3rd party tools than Bazaar currently has. OTOH, if workflow flexibility is important, collaborating with others and increasing community participation matter, low administration is appealing or you care about quality branching/merging and correct rename handling, then Bazaar can help make life more enjoyable and ought to be seriously considered either now or in the future, depending on how comfortable you are with its maturity.

    Mehr Werbung für Bazaar hier.

Trackbacks

  • By Auswahl Online Bugtracking Anbieter « Doc-T on 17 Oktober 2008 at 22:01

    […] Online Bugtracking Anbieter Wenn ich schon mal herumprogrammiere, möchte ich auch Fehler nachführen und strukturiert beheben. Außerdem fallen einem ja ständig […]

%d Bloggern gefällt das: