Versionskontrolleure im Vergleich

18.02.2005
Von   
Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com

CVS steht für Concurrent Version System und ist nicht nur das dominante Versionskontrollsystem in Open-Source-Projekten. Es hat sich im Lauf der Jahre geradezu zu einem Quasistandard unter den Versionsverwaltungen entwickelt. Seine herausragende Stellung verdankt es seiner kostenlosen Verfügbarkeit, seiner Portabilität und nicht zuletzt seiner langen Geschichte. Der Vorläufer, der auf Unix-Shellskripten basierte, geht bis ins Jahr 1986 zurück.

1989 hat Brian Berliner das Versionskontrollsystem neu entworfen, einige der bestehenden Algorithmen übernommen und CVS in der Programmiersprache C neu implementiert. Derzeit ist Version 1.12.11 aktuell, die kostenfrei über die CVS-Homepage heruntergeladen werden kann. Aber das ist oftmals gar nicht notwendig, denn viele Entwicklungswerkzeuge und Linux-Distributionen enthalten CVS ohnehin schon im Lieferumfang.

CVS besitzt wie die meisten derartigen Werkzeuge eine Client-Server-Architektur. Der Server speichert alle zu einem Projekt gehörenden Dateien in einem proprietären Repository, das man sich als Datenbank vorstellen kann. Als Standard-Client wird ein Kommandozeilenwerkzeug mitgeliefert. Wer mit dieser spartanischen Oberfläche nicht arbeiten will, kann auf verschiedene Alternativen zurückgreifen.

Die Clients für CVS

Von diversen anderen Anbietern gibt es Clients mit grafischer Oberfläche. Für Windows sind dies das bekannte "WinCvs" und die Explorer-Erweiterung "TortoiseCVS". Für Linux und andere Unix-Systeme ist "gCvs" verfügbar, und sogar für Mac OS X existiert ein Client, das "MacCvsX". Auch diverse Entwicklungsumgebungen wie Eclipse, Jbuilder und Netbeans haben einen derartigen Client integriert, so dass der Entwickler für Standardaufgaben nicht noch ein weiteres Programm neben seiner Entwicklungsumgebung benötigt.