IB4L4IB
Cursus Linux voor Informaticabeheer |
|
Home Medewerkers Visie Mailinglist CVS Cursussen |
CVS toegangWat is CVS?CVS staat voor Concurrent Versions System. Het is een systeem dat toelaat om aan versiebeheer te doen, dat wil zeggen alle versies van van de bestanden die wij bijwerken worden bijgehouden in één CVS-tree. Natuurlijk wordt er meestal aan de laatste versie gewerkt, maar soms kan het handig zijn om naar een vroegere versie van een bestand terug te grijpen. Het grote voordeel van CVS zit hem in het woord ``Concurrent''. CVS laat toe dat meerdere mensen hetzelfde bestand bewerken. Tevens verplicht het je om een kleine boodschap te schrijven over het hoe en het waarom van je veranderingen. Wij maken gebruik van de faciliteiten die SourceForge ons biedt: de CVS-tree bevindt zich dan ook op SourceForge. Je kan de tree via het web bekijken op http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=inf-beheer. Hoe gebruik je CVS?Je kan de instructies hieronder doornemen als je nog niet bekend bent met CVS en CVS uitsluitend voor dit project wil gebruiken. Als je meer uitleg wenst over CVS kan je best de informatie op CvsHome lezen. Anonymous CVSAnonymous CVS geeft je read-only toegang tot ons CVS-archief. Dit is bedoeld voor mensen die zich afvragen wat er allemaal gebeurt, maar niet direct geïnteresseerd zijn om mee te werken (tss, tss), of er geen tijd voor hebben. 1. ConfigurerenMaak ergens een directory aan (bv. met de naam inf-beheer), verplaats je naar die directory en zet de environment-variabele CVSROOT als volgt: $ CVSROOT=:pserver:anonymous@cvs.inf-beheer.sourceforge.net:/cvsroot/inf-beheer $ export CVSROOT 2. InloggenInloggen doe je als volgt: $ cvs login (Logging in to anonymous@cvs.inf-beheer.sourceforge.net) CVS password: <emtpy> Ziezo, je bent ingelogd. 3. Initiële checkoutJe moet het archief één keer in zijn geheel naar je computer overbrengen. Deze actie noemt checkout $ cvs -z3 checkout main cvs server: Updating main U main/README.structuur cvs server: Updating main/bdr-notas ... Er wordt nu een directory main aangemaakt, met daarin alle modules. (www/ bdr-notas/). Deze actie moet je niet meer herhalen, tenzij je de ganse directory wegveegt. 4. UpdatenOmdat er natuurlijk constant iets verandert (of zo zou het toch moeten), moet je van tijd tot tijd je copy van de CVS-tree updaten. Hiervoor ga je in de directory main/ staan en doe je: $ cvs -z3 update -Pd cvs server: Updating . cvs server: Updating bdr-notas cvs server: Updating bdr-notas/linux cvs server: Updating bdr-notas/shell cvs server: Updating www 5. VeranderenJe kan lokaal alles veranderen, maar daar heeft natuurlijk niemand iets aan. Je kan deze veranderingen niet wegschrijven naar CVS, daar heb je write-access voor nodig. Als je een kleine wijziging wil aanbrengen, kan je best het bestand wat je wil veranderen kopiëren en de wijzingen tussen jouw copy en het origineel naar de mailinglist sturen. Deze wijzingen genereer je d.m.v.: $ diff -u origineel_bestand gewijzigd_bestand > wijzingen.txtOf, via CVS: $ cvs diff -u > wijzigingen.txt Indien je echt alles wil wijzigen, en wij vinden dat goed :-), kan je best een mailtje sturen naar de projectverantwoordelijke, zodanig dat je write-access bekomt. Write access:Het volgende stuk is enkel bedoeld voor mensen die geregistreerd zijn als ontwikkelaar. 1. configurerenDe mensen die door Yvan als developer zijn geregistreerd hebben write-access in CVS. Zij gebruiken de volgende instructies: CVS_RSH=ssh CVSROOT= Om het makkelijker te maken kan je deze instructies best in een bestand bewaren (bv. CVSDEFINITIONS), en dan dit bestand door de shell laten sourcen: $ . CVSDEFINITIONS 2. Initiëel checkout en updatesZie hierboven, bij anonymous CVS-access. 3. VeranderenWens je iets te veranderen, dan kan je dat gewoon doen, maar op die manier weten andere ontwikkelaars niet dat jij dat bestand aan het bewerken bent. Op zich kan dat niet zo veel kwaad (CVS is in staat om wijzigingen die niet met elkaar conflicteren samen te voegen), maar het is, vooral in dit project, gemakkelijker als één bestand niet door meerdere personen tegelijk bewerkt wordt. Daarom doe je best $ cvs editors <bestandsnaam> om te kijken of iemand anders het bestand al aan het bewerken is, en zo niet $ cvs edit <bestandsnaam> Wens je een bestand aan CVS toe te voegen, dan doe je dat met $ vi <bestandsnaam> $ cvs add <bestandsnaam> Wens je een bestand te verwijderen, dan doe je dat met: $ rm <bestandsnaam> $ cvs remove <bestandsnaam> Wens je een ganse directory met bestanden te importen, dan moet je eerste de directory toevoegen ("cvs add <dir>"), en nadien alle bestanden ("cd <dir>; cvs add *") Hierna doe je $ cvs commit om de veranderingen in de CVS-tree te importeren. Er zal je gevraagd worden om een korte beschrijving van je wijzigingen in te geven. Hou dit zo klaar en bondig mogelijk. (tip: cvs commit plaatst je in je editor, aangegeven door de EDITOR environment variabele. Indien je deze variabele niet verandert kom je in vi terecht. Moest je niet met vi overweg kunnen (shame on you), verander dan de environment variabele.) Wens je bepaalde bestanden of directories uit CVS uit te sluiten, dan maak je een bestand in die directory aan met de naam ".cvsignore", met daarin de namen van de bestanden die niet in CVS mogen terechtkomen. 4. Veranderingen bekijkenOm de veranderingen in CVS te bekijken kan je het volgende doen: $ cvs log index.php (of eender welke <bestandsnaam>) RCS file: /cvsroot/inf-beheer/main/www/index.php,v Working file: index.php ... total revisions: 4; selected revisions: 4 description: ---------------------------- revision 1.4 date: 2001/03/25 13:45:46; author: benderydt; state: Exp; lines: +1 -1 added a CVS-Id ---------------------------- revision 1.3 date: 2001/03/24 16:09:34; author: benderydt; state: Exp; lines: +1 -1 Typo on Frontpage :-( ---------------------------- ... Wens je de wijzigingen tussen een bepaalde versie en de nieuwe versie te bekijken, dan doe je: (bijvoorbeeld om de veranderingen tussen versie 1.3 en de huidige versie te bekijken) $ cvs diff -u -r 1.3 index.php Index: index.php =================================================================== RCS file: /cvsroot/inf-beheer/main/www/index.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- index.php 2001/03/24 16:09:34 1.3 +++ index.php 2001/03/25 13:45:46 1.4 @@ -9,4 +9,4 @@ Enkele voorlopige teksten kan je al lezen op de <a href=...> ... bij sourceforge. -<?php inf_footer()?> +<?php inf_footer('$Id: cvs.php,v 1.10 2001/07/31 20:15:09 yoe Exp $')?> Wat gebeurt er allemaal in CVS?Je bent een verbeten ontwikkelaar, en je kan er niet tegen dat je ook maar één stukje van de actie mist. Dan kan je je best inschrijven op de mailing-list inf-beheer-cvs-commit@lists.sourceforge.net. Op deze mailinglist verschijnt informatie over alle veranderingen in CVS. Technisch gezien wordt elke cvs commit op deze mailinglist gepost.
Inschrijven op deze mailinglist kan hier. |