Concurrent Versions System

Concurrent Versions System
Concurrent Versions System
Maintainer CVS Team
Aktuelle Version 1.11.23
(8. Mai 2008)
Aktuelle Vorabversion 1.12.13
(28. September 2005)
Betriebssystem Unix, Windows
Programmier­sprache C
Kategorie Versionsverwaltung
Lizenz GNU General Public License
savannah.nongnu.org/projects/cvs

Concurrent Versions System (kurz CVS) ist ein Software-System zur Versionsverwaltung von Dateien, das hauptsächlich im Zusammenhang mit Software-Quelltext verwendet wird.

CVS wird nicht mehr aktiv weiterentwickelt. Die offizielle Webseite von CVS wird nicht mehr weiter betreut.

Inhaltsverzeichnis

Allgemeines

Das ursprüngliche 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 lange Zeit besonders in der Open-Source-Gemeinde großer Beliebtheit. So kam es bei den meisten großen Open-Source-Projekten zum Einsatz. Das Softwaresystem wird unter anderem auch auf den Servern von SourceForge.net verwendet. Allerdings wurde es bei den meisten großen Open-Source-Projekten durch modernere Versionsverwaltungen wie Subversion oder Git abgelöst. Auch im kommerziellen Umfeld ist auf Grund der nicht mehr gegebenen aktiven Weiterentwicklung eine Ablösung durch modernere Versionsverwaltungen zu beobachten. Hier wird vor allem Subversion eingesetzt da dieses als logischer Nachfolger von CVS mit nur geringem Umstellungsaufwand verstanden wird.

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 herausgestellt werden. So hilft CVS dabei, einen Überblick über die einzelnen Versionen der Dateien und die dazugehörigen Kommentare zu behalten. Es 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“ genannt (von engl. check in). Probleme können sich ergeben, wenn mehrere Mitarbeiter gleichzeitig eine Datei verändern. Diese Probleme können entweder von vornherein verhindert (durch Lock, bei Revision Control System verwendet, bei CVS untypisch) oder im Nachhinein meist relativ leicht behoben werden (Merge), zumindest dann, wenn unterschiedliche Teile einer Datei verändert wurden. Evtl. auftretende Konflikte müssen manuell ausgeräumt werden. Wer nur Code herunterladen will, kann alternativ auch das Feature „Anonymous CVS Access“ benutzen.

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 Fernzugriff 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

Die Entwicklung von CVS begann 1989 als Weiterentwicklung von RCS und Source Code Control System (SCCS). Im Unterschied zu diesen ist CVS in der Lage, mehrere Dateien zur gleichen Zeit zu speichern, wobei aber das gleiche Dateiformat wie bei RCS benutzt wird. CVS hat allerdings auch einige Einschränkungen, zum Beispiel beim Umgang mit Binärdaten und Verzeichnissen. Das als CVS-Nachfolger gehandelte, neu entwickelte Subversion will diese beheben.

Neben dem teilweise auch konzeptionell anders angelegten Subversion, gibt es verschiedene Neu- oder Reimplementierungen von CVS, die Sicherheitsmängel beheben und mit anderen Verbesserungen aufwarten. So existiert etwa eine Neuentwicklung von CVS mit dem Namen CVSNT für Windows, welche bereits für Linux rückportiert wurde. Dieses Server-System bietet so wie Subversion viele Verbesserungen gegenüber der alten CVS-Entwicklungslinie. OpenCVS ist eine Variante, die unter dem Mantel des Betriebssystems OpenBSD entwickelt wird.

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

Siehe auch

Literatur

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Concurrent Versions System — Developer(s) The CVS Team Initial release November 19, 1990; 21 years ago (1990 11 19) Stable release …   Wikipedia

  • Concurrent Versions System — « CVS » redirige ici. Pour les autres significations, voir CVS (homonymie). Concurrent versions system …   Wikipédia en Français

  • Concurrent versions system — « CVS » redirige ici. Pour les autres significations, voir CVS (homonymie). Concurrent versions system   Développeur …   Wikipédia en Français

  • Concurrent Versions System — …   Википедия

  • Distributed Concurrent Versions System — Developer(s) elego Software Solutions GmbH Initial release August 2002; 9 years ago (2002 08) Stable release 1.0.3 / September 25, 2006; 5 years ago ( …   Wikipedia

  • Concurrent computing — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent c …   Wikipedia

  • Concurrent data structure — In computer science, a concurrent data structure is a particular way of storing and organizing data for access by multiple computing threads (or processes) on a computer. Historically, such data structures were used on uniprocessor machines with… …   Wikipedia

  • System 10 — Le System 10 est un système de jeux vidéo pour borne d arcade compatible JAMMA destiné aux salles d arcade, créé par la société japonaise Namco en 1996. Logo du System 10 Sommaire …   Wikipédia en Français

  • System 12 — Le System 12 est un système de jeux vidéo pour borne d arcade compatible JAMMA destiné aux salles d arcade, créé par Namco en 1996. Sommaire 1 Description 2 Spécifications techniques 2.1 Processeur principal …   Wikipédia en Français

  • Linux on System z — History of IBM mainframe operating systems On early mainframe computers: GM OS GM NAA I/O 1955 BESYS 1957 UMES 1958 SOS 1959 IBSYS 1960 CTSS 1961 On S/360 and successors: BOS/360 1965 TOS/360 1965 TSS/360 1967 MTS 1967 …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”