Concurrent Versions System

Concurrent Versions System (CVS) is een versiebeheersysteem dat is ontwikkeld om versiebeheer te ondersteunen op hiërarchisch geordende verzamelingen (bron) bestanden. Het is een voorbeeld van gecentraliseerde versiecontrole. Op een enkele plaats, de repository, worden alle versies van alle bestanden bijgehouden, terwijl gebruikers op een lokale kopie daarvan werken. Gebruikers moeten hun kopie synchroon houden met expliciete opdrachten om wijzigingen door te voeren en om bestanden aan de versiecontrole toe te voegen of eruit te verwijderen.

Concurrent Versions System
OntwikkelaarHet CVS Team
Recentste versie1.11.23 
(8 mei 2008)
Laatste bètaversie1.12.13 
(26 juli 2006)
StatusInactief
BesturingssysteemWindows, Linux en Unix
Geschreven inC
CategorieVersiebeheersysteem
LicentieGPL
Versiebeheersavannah.nongnu.org
Website(en) Projectpagina
Portaal    Informatica
Vrije software

De repository kan op het lokale bestandssysteem staan, maar CVS ondersteunt ook verscheidene client-server-protocollen die het toestaan dat de repository elders op een server wordt opgeslagen. Hierdoor is het door meerdere gebruikers tegelijk te gebruiken. Dit maakt CVS een goed instrument voor het samenwerken aan bestanden door een aantal mensen tegelijk vanaf verschillende locaties.

CVS werd in 1986 geschreven door Dick Grune van de Universiteit van Amsterdam als een verzameling shellscripts die RCS aanriepen. RCS kan alleen versiebeheer doen op losse bestanden, dus dit was een grote stap vooruit. In 1989 maakte Brian Berliner een implementatie in C, die sindsdien verder is doorontwikkeld; het is opensourcesoftware, verspreid onder de GNU General Public License (GPL).

In de jaren 1990 ontwikkelde CVS zich tot de de facto standaard voor versiecontrole bij opensourcesoftware; voorbeelden van projecten die het gebruikten zijn GNOME, KDE, GIMP en Wine. In de jaren 2000 vond een verschuiving plaats naar Subversion en naar decentrale versiecontrolesoftware zoals Git.

Beperkingen

CVS werkt nog steeds door losse operaties op afzonderlijke bestanden (namelijk die van RCS) op reeksen bestanden achter elkaar uit te voeren. Hierdoor heeft het een paar grote beperkingen:

  • geen atomic commit: het doorvoeren van wijzigingen kan halverwege een reeks falen, met een inconsistente repository als resultaat;
  • geen herkenning van of ondersteuning voor het hernoemen, splitsen of samenvoegen van bestanden;
  • geen globale versienummering (elk bestand heeft zijn eigen oplopende versienummer);
  • geen goede ondersteuning voor binaire bestanden (CVS kan geen verschillen tussen de versies van zulke bestanden bepalen).

Het versiebeheersysteem Subversion is een volledige herimplementatie van de principes van CVS waar deze beperkingen grotendeels uit verwijderd zijn.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.