CVS

Uit FOK!wiki
Ga naar: navigatie, zoeken

Inleiding[bewerken]

CVS is een versie controlesysteem. De afkorting staat voor Concurrent Versions System.

CVS wordt gebruikt voor het versiebeheer van bestanden, bijvoorbeeld broncode bestanden voor een programma. Dit houdt in dat er op de CVS-server wordt bijgehouden welke wijzigingen er aan een set bestanden worden gemaakt. Deze gegevens op de server noemt men de repository. Door dit bij te houden kan je alle veranderingen in verschillende versies volgen en kan je op elk willekeurige moment elke versie terughalen die ooit in de repository heef gezeten. Je kunt dit vergelijken met de geschiedenis van de wiki paginaas.

Een belangrijk voordeel van een versie controlesysteem is dat meerdere mensen tegelijkertijd (concurrent) aan de bestanden kunnen werken. Je werkt aan jouw lokale copie bestanden en bij het uploaden naar de cvs server probeert cvs eventuele verschillen die zijn gemaakt door anderen te mengen.

Basis begrippen[bewerken]

Bij deze begrippen en bijbehorende commandoos ga ik uit van de command line interface van de client. De begrippen blijven natuurlijk hetzelfde voor een grafische interface. Zie CVS Server voor het opzetten van een eigen cvs server.

  • repository Alle files, inclusief versie nummers en verschillen, van het project. De repository bevindt zich op de cvs server.
  • revision numbers Bij iedere wijziging en upload van een file zal cvs het versie nummer van de file met 1 verhogen. Een versie nummer ziet er uit als getal.getal of getal.getal.getal. Een versie nummer 1.3.5 is ouder dan een nummer 1.3.12 (want 12 is groter dan 5 en dus een nieuwere versie). Een revision number van een file heeft vaak weinig verband met de versie van de software, dat is "slechts" een symbolische tag.
  • tag Met een tag geef je een symbolische versie number aan de files in een repository. Dit is makkelijk als je bijvoorbeeld je software wilt uitbrengen en je niet voor iedere file het revision number wil onthouden. Bijvoorbeeld de FreeBSD tag voor versie 5.3 is RELENG_5_3.
  • branch ...
  • pserver/ssh ...
  • checkout Maak een lokale copie van de reposity. Bijvoorbeeld cvs -d :ext:danny@cvs.fok.nl:/fok checkout fok-layout, haalt de repository fok-layout van de fok cvs server. Als de directory fok-layout nog niet bestaat, dan wordt deze aangemaakt. Bestaat de directory wel en zitten hier al bestanden van de repository in, dan werkt checkout hetzelfde als een update. Als er geen versie of symbolische tag wordt gegeven, wordt de meest recente versie gedownload.
  • update Vergelijkt de versie nummers van de lokale copie en de reposity en update de lokale copie.
  • commit Upload alle veranderingen die jij hebt gemaakt in de lokale copie naar de repository. Bijvoorbeeld cvs commit banlist.txt voor het commiten van 1 file of cvs commit voor de hele directory. A
  • add Voeg een nieuwe file of diretory toe aan de repository. Deze wordt pas echt toegevoegd na een commit.
  • delete Verwijder een file. Ook hier wordt de verandering pas uitgevoerd bij een commit.
  • export Maakt een lokale copie aan, echter zonder CVS informatie. Met dit commmando kun je bijvoorbeeld een archive maken om te distribueren. Aangezien de CVS informatie ontbreekt, kun je geen commit of update doen in de lokale copie. Bijvoorbeeld cvs -d :ext:danny@cvs.fok.nl:/fok export -r 1.0 forum maakt een locale copie aan van de repository forum, met tag 1.0. In tegen stelling tot checkout, moet je bij export altijd een tag meegeven.

rest[bewerken]

Het programma is Open Source en valt onder de GPL licentie. Het is platform onafhankelijk en werkt volgens het client-server model.

Een ander bekend versie controlesystemen is Subversion. Sommige ontwikkel platformen, zoals Microsoft Visual Studio, hebben een eigen versie controlesystem.

Links[bewerken]

http://www.gnu.org/software/cvs/ De GNU versie van cvs.

http://www.tortoisecvs.org/ Tortoise CVS client software voor Microsoft Windows.

http://www.wincvs.org/ Een andere gratis CVS client.

http://sourceforge.net Een van de grootste publieke cvs servers.