Concurrent Versions System

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Concurrent Versions System
Ontwikkelaar Het CVS Team
Recentste versie 1.11.23 
(8 mei 2008)
Laatste bètaversie 1.12.13 
(26 juli 2006)
Status Inactief
Besturingssysteem Windows, Linux en Unix
Geschreven in C
Categorie Versiebeheersysteem
Licentie GPL
Website (en) Projectpagina
Portaal  Portaalicoon   Informatica
Vrije software

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.

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 gebruiken zijn GNOME, KDE, GIMP en Wine.

Beperkingen en verschuiving[bewerken]

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.

Hoewel CVS nog steeds populair is, vindt de laatste jaren een verschuiving plaats naar Subversion en naar decentrale versiecontrolesoftware zoals Git.

Externe links[bewerken]