Zum Inhalt springen

Concurrent Versions System

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 17. Januar 2006 um 13:07 Uhr durch 193.22.65.1 (Diskussion) (Funktionsweise). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Concurrent Versions System (CVS, nicht zu verwechseln mit CSV) bezeichnet ein Programm zur Versionsverwaltung von Dateien, hauptsächlich Software-Quelltext.

CVS ist ein reines Kommandozeilen-Programm, aber es wurde für alle gängigen Betriebssysteme mindestens eine grafische Oberfläche entwickelt, zum Beispiel TortoiseCVS und WinCVS für Windows, MacCVS für den Apple Macintosh und Cervisia für KDE unter Linux. LinCVS und SmartCVS funktionieren auf Windows, Linux und Mac OS X.

CVS erfreute sich besonders in der Open-Source-Gemeinde großer Beliebtheit. So wurde es bei den meisten großen Open-Source-Projekten verwendet. Das Softwaresystem wird unter anderem auch auf den Servern von SourceForge.net verwendet. Allmählich wird CVS durch andere Entwicklungen wie Subversion ersetzt.

Funktionsweise

CVS vereinfacht die Verwaltung von Quellcode dadurch, dass es alle Dateien eines Software-Projektes an einer zentralen Stelle, einem so genannten Repository, speichert. Dabei können jederzeit einzelne Dateien verändert werden, es bleiben jedoch alle früheren Versionen erhalten, einsehbar und wiederherstellbar. Auch können die Unterschiede zwischen bestimmten Versionen verglichen werden. Somit hilft CVS dabei, einen Überblick über die einzelnen Versionen der Dateien und die dazugehörigen Kommentare zu behalten und kann insbesondere verwendet werden, um bei größeren Projekten die Arbeit der verschiedenen Entwickler zu koordinieren.

Die Arbeitsweise ist dabei, vereinfacht gesehen, folgende: Ein Mitarbeiter an dem Projekt holt sich zunächst den aktuellen Stand aller Dateien eines Projekts aus dem Repository. Dies bezeichnet man als „auschecken“ (von engl. check out). Dabei werden von CVS Metadaten angelegt, die es ermöglichen, zu erkennen, welche Versionen der Dateien zuletzt ausgecheckt wurden. Dann nimmt der Mitarbeiter Änderungen an einer oder mehreren Dateien vor. Wenn er damit fertig ist oder (bei größeren Änderungen) einen konsistenten Zwischenstand erreicht hat, spielt er diese neuen Versionen der geänderten Dateien zurück ins Repository („einchecken“, check in). Probleme können sich ergeben, wenn mehrere Mitarbeiter gleichzeitig eine Datei verändern. Diese Probleme können durch CVS verhindert (Locking) oder im Nachhinein meist relativ leicht behoben werden (Merge), zumindest dann, wenn unterschiedliche Teile einer Datei verändert wurden.

CVS verwendet Delta-Kodierung, um dadurch Platz zu sparen, dass nur die Differenzen zwischen Dateiversionen anstatt der gesamten Versionen abgespeichert werden.

Das Repository kann lokal in einem Verzeichnis auf dem Rechner liegen oder aber auf einem Server im Internet. Durch diesen remote Zugriff ist es leicht möglich, dass eine über den Globus verteilte Entwicklergruppe gemeinsam an einem Projekt arbeitet. Auf viele Open Source-Projekte ist neben dem Entwicklerzugriff auch ein anonymer, rein lesender Zugriff erlaubt.

Herkunft und Ableger

CVS ist eine Weiterentwicklung von RCS, wobei CVS im Unterschied dazu in der Lage ist, mehrere Dateien zur gleichen Zeit zu speichern, aber das gleiche Dateiformat benutzt. CVS hat allerdings auch einige Einschränkungen, zum Beispiel beim Umgang mit Binärdaten und Verzeichnissen. Das als CVS-Nachfolger gehandelte, komplett neu entwickelte Subversion will diese beheben.

Viele der kommerziellen Configuration-Management-Werkzeuge basieren auf RCS oder CVS.

Literatur

  • Karl Franz Fogel, Moshe Bar: Open Source Development with CVS. 3. Auflage. Paraglyph Press, Juli 2003, ISBN 1932111816 (online lesen)
  • Gregor N. Purdy: CVS Pocket Reference. 2. Auflage. O'REILLY, 1. September 2003, ISBN 0596005679