Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Concurrent Versions System

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

Inhalt5 Abschnitte
  1. 1. Überblick und Bedeutung
  2. 2. Repository und Versionsverwaltung
  3. 3. Typischer Arbeitsablauf
  4. 4. Bedienung und Oberflächen
  5. 5. Herkunft, Grenzen und Weiterentwicklungen

Überblick und Bedeutung

Das Concurrent Versions System (CVS) ist ein System zur Versionsverwaltung von Dateien. Es wird hauptsächlich für Software-Quelltext eingesetzt und ermöglicht es, Änderungen an einem Projekt nachzuverfolgen sowie die Zusammenarbeit mehrerer Entwickler zu koordinieren.

CVS erschien am 19. November 1990 und wurde in C für Unix und Windows entwickelt. Die Referenzimplementierung steht unter der GNU General Public License, Version 1.0 oder später. Als aktuelle stabile Version wird 1.11.23 vom 8. Mai 2008 genannt; die aktuelle Vorabversion ist 1.12.13 vom 28. September 2005. Die Referenzimplementierung wird nicht mehr aktiv weiterentwickelt und ihre offizielle Website nicht mehr betreut. Auf den Mailinglisten sind jedoch weiterhin Benutzer aktiv.

CVS war besonders in der Open-Source-Gemeinde lange weit verbreitet und kam bei vielen großen Open-Source-Projekten sowie auf den Servern von SourceForge.net zum Einsatz. Inzwischen wurde es dort und im kommerziellen Bereich größtenteils durch modernere Systeme wie Apache Subversion oder Git ersetzt. Subversion gilt dabei als logischer Nachfolger, weil die Umstellung von CVS vergleichsweise wenig Aufwand erfordert.

Repository und Versionsverwaltung

CVS speichert alle Dateien eines Softwareprojekts zentral in einem sogenannten Repository. Ein Repository ist der gemeinsame Speicherort, an dem die verwalteten Dateien und ihre verschiedenen Versionen liegen. Es kann sich in einem lokalen Verzeichnis oder auf einem Server im Internet befinden.

Dateien dürfen verändert werden, während ihre früheren Versionen erhalten, einsehbar und wiederherstellbar bleiben. CVS kann außerdem die Unterschiede zwischen ausgewählten Versionen anzeigen und Kommentare zu Änderungen verwalten. Dadurch lässt sich nachvollziehen, wie sich einzelne Dateien entwickelt haben.

Für die platzsparende Speicherung verwendet CVS die Delta-Kodierung: Statt jede Dateiversion vollständig abzulegen, speichert das System nur die Unterschiede zwischen den Versionen.

Typischer Arbeitsablauf

Zu Beginn holt ein Mitarbeiter den aktuellen Stand der Projektdateien aus dem Repository. Dieser Vorgang heißt „Auschecken“ beziehungsweise „check out“. CVS legt dabei Metadaten an, anhand derer es erkennt, welche Versionen zuletzt ausgecheckt wurden.

Anschließend bearbeitet der Mitarbeiter eine oder mehrere Dateien. Nach Abschluss der Arbeit oder beim Erreichen eines konsistenten Zwischenstands überträgt er die geänderten Versionen zurück in das Repository. Dieser Vorgang heißt „Einchecken“ beziehungsweise „check in“.

Wenn mehrere Personen gleichzeitig dieselbe Datei verändern, können Probleme entstehen. Sie lassen sich von vornherein durch ein Lock verhindern, also durch eine vorübergehende Sperre der Datei. Dieses Vorgehen wird beim Revision Control System verwendet, ist für CVS aber untypisch. Üblicher ist ein nachträglicher Merge, bei dem die Änderungen zusammengeführt werden. Das gelingt meist relativ leicht, wenn unterschiedliche Teile der Datei bearbeitet wurden. Widersprechen sich Änderungen, entstehen Konflikte, die manuell gelöst werden müssen.

Ein Repository auf einem Internetserver ermöglicht die gemeinsame Arbeit räumlich verteilter Entwicklergruppen. Viele Open-Source-Projekte erlauben neben dem schreibenden Entwicklerzugriff auch einen anonymen, ausschließlich lesenden Zugriff. Wer nur den Quellcode herunterladen möchte, kann dafür „Anonymous CVS Access“ verwenden.

Bedienung und Oberflächen

Das ursprüngliche CVS ist ein reines Kommandozeilenprogramm. Für die verbreiteten Betriebssysteme wurden jedoch grafische Benutzeroberflächen entwickelt. Beispiele sind TortoiseCVS und WinCVS für Windows, MacCVS für den Apple Macintosh sowie Cervisia für KDE unter Linux. LinCVS und SmartCVS funktionieren unter Windows, Linux und macOS.

Herkunft, Grenzen und Weiterentwicklungen

Die Entwicklung von CVS begann 1989 als Weiterentwicklung des Revision Control System (RCS) und des Source Code Control System (SCCS). Anders als diese Systeme kann CVS mehrere Dateien gleichzeitig speichern. Es verwendet dabei dasselbe Dateiformat wie RCS.

CVS besitzt Einschränkungen, unter anderem beim Umgang mit Binärdaten und Verzeichnissen. Apache Subversion wurde als möglicher Nachfolger entwickelt und soll solche Probleme beheben.

Daneben entstanden Neu- und Reimplementierungen, die Sicherheitsmängel beseitigen und weitere Verbesserungen bieten. CVSNT ist eine Neuentwicklung für Windows, die später auf Linux rückportiert wurde. Das Server-System bietet ähnlich wie Subversion zahlreiche Verbesserungen gegenüber der alten CVS-Entwicklungslinie.

OpenCVS wurde vom OpenBSD-Projekt wegen Lizenz- und Sicherheitsproblemen des offiziellen CVS von Grund auf neu entwickelt. Es wird weiterhin aktualisiert und gepflegt und besitzt einen leicht erweiterten Funktionsumfang. Beispielsweise kann das Schlüsselwort „$Mdocdate$“ durch einen im mdoc-Format dargestellten Zeitstempel ersetzt werden, was besonders bei der Pflege von man-pages hilfreich ist. Viele kommerzielle Werkzeuge für das Configuration Management basieren ebenfalls auf RCS oder CVS.

Weiterlesen

Microsoft Windows Microsoft Windows (englische Aussprache [ˈmaɪ.kɹoʊ.sɒft ˈwɪn.doʊz]) bzw. Windows ist eine Reihe proprietärer grafischer Betriebssystemfamilien von Microsoft … Versionsverwaltung Eine Versionsverwaltung ist ein System, das zur Erfassung von Änderungen an Dokumenten oder Dateien verwendet wird. Alle Versionen werden in einem Archiv … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Quelltext Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer … Grafische Benutzeroberfläche GUI von englisch graphical user interface) bezeichnet eine Form von Benutzerschnittstelle eines Computers. Sie hat die Aufgabe, Anwendungssoftware auf einem … Apache Subversion Apache Subversion (SVN) ist eine freie Software zur zentralen Versionsverwaltung von Dateien und Verzeichnissen. Apache Subversion. Subversion-Logo. Git Git [ɡɪt] ist eine freie Software zur verteilten Versionsverwaltung von Dateien, die durch Linus Torvalds initiiert wurde. Delta-Kodierung Als Verfahren zur Datenkompression verringern sie den Speicherbedarf und die Menge der über Datenleitungen zu übertragenden Daten (Bandbreitenbedarf) bei der … Mercurial Mercurial ist ein plattformunabhängiges, verteiltes Versionskontrollsystem zur Software-Entwicklung. Es wird nahezu vollständig in Python entwickelt: lediglich … Bazaar Bazaar (vormals Bazaar-NG) ist Teil des GNU-Projekts und eine Software zur Versionsverwaltung von Quellcode, dessen Entwicklung vor allem durch Canonical Ltd.