Introduction

 CVS («Control Version System») est un logiciel permettant à plusieurs développeurs de contribuer à un même projet, par exemple en gardant trace des mise à jour, en gérant les conflits éventuels etc.
 Dans la description ci-dessous, on prendra pour exemple le cas concret suivant : vous êtes une équipe de 4 à 5 développeurs (de l'UMH), disons le groupe$i, (groupe n° i),  et vous voulez utiliser CVS pour votre projet intitulé «projetBD».

   Vue générale

Chaque groupe possède déjà sur le serveur fbd-serv un "repository", le fameux "CVSROOT", égal à : /home/etudiants/fbd1|2/gr[ou]pe$i/CVS.
C'est dans ce répertoire (personnel à chaque groupe), que doit se trouver la version actualisée du projet à laquelle chacun de son côté les développeurs contribuent.
Ainsi lorsque l'un d'eux s'apprête à faire une amélioration/mise à jour, il doit récupérer  sur sa machine locale une copie du CVSROOT (phase "checkout"), effectuer sur cette copie les changements/améliorations/nouveautés, et quand il considère que c'est satisfaisant, il actualise la version du CVSROOT sur le serveur (phase "commit"). Le serveur indique s'il n'y a pas de conflits lors de cette dernière phase.

   Concrètement

En attendant que celui-ci soit installé "d'office" sur toutes les machines des salles Turing et Escher, vous devez le faire vous-même.
Bien sûr plusieurs clients sont possibles. On peut par exemple installer un Cygwin minimal (mode texte) ou MSYS avec un paquet CVS, et faire alors du cvs client en mode ligne de commande. (On peut aussi travailler en se connectant par ssh sur le serveur et faire du cvs "local", mais on perd alors tout l'intérêt de CVS).
Prenons la solution de facilité : vous double-cliquez sur le WinCVSsetup.exe (\\fbd-serv\public\CVS, domaine fs-students, machines Win2000/NT) et choisissez par exemple une installation dans C:\Temp\ (ou dans votre répertoire de travail). Notez que le programme d'installation essaie d'écrire dans le base de registre, vous pouvez ignorer ceci, le client fonctionnera tout à fait bien sans cela. Notez aussi qu'il faut accepter l'installation de CVSNT (c'est le «moteur» cvs, WinCVS n'étant que l'interface graphique). Toutes les options d'installation par défaut sont correctes, sauf si vous voulez être très précis vous pouvez décocher les options ":ext: ; :rsh: ; :ssh:" qui ne pourront de toute façon pas être utilisées (les machines Win2000/NT ne les reconnaissent pas en tant que commandes internes).

Note : WinCVS est un logiciel libre, et pour toute la doc voir WinCVS, et CVSNT.

La première fois que l'on se connecte au serveur : menu "Admin" > Login, vous indiquez la valeur du CVSROOT, ainsi que la méthode d'accès au serveur. Ceci donne :
:pserver:gr[ou]pe$i@fbd-serv:/home/etudiants/fbd1|2/gr[ou]pe$i/CVS

avec "groupe (fbd1)" ou "grpe (fbd2)" suivant  que vous êtes «Fichiers et Bases de données» 1 ou 2, et $i étant votre n° de groupe.
En ligne de commande UNIX, c'est : $ cvs :pserver:gr[ou]pe$i@fbd-serv:/home/etudiants/fbd1|2/gr[ou]pe$i/CVS login
Alors vous sera demandé un password, c'est celui (initialement) de votre compte sur le serveur. (Cf remarque sur le password plus bas).
Si l'authentification réussit, alors dans le cache du client sera mémorisé votre password. (Note : pour un client UNIX, c'est le dans le fichier ~/.cvspass), qu'il n'y aura plus besoin de donner pour toute prochaine commande au serveur. Si vous voulez supprimer votre passwd du cache : menu "Admin"> Logout. (Pour client UNIX : $ cvs logout).

Attention : il faut bien comprendre que CVS fonctionne en mode «déconnecté» (comme http), vous envoyez des commandes au serveur (login, add, checkout, commit, import...) qui vous renvoie le résultat de vos commandes, mais entre deux commandes vous n'êtes pas connecté (contrairement à ssh où telnet par exemple).

Note : il est recommandé de stocker la valeur du CVSROOT ci-dessus, pour ne pas avoir à la retaper à chaque commande. Pour un client UNIX, c'est une variable d'environnement, et donc en supposant le shell bash, alors dans le fichier ~/.bashrc il faut ajouter la ligne :
export CVSROOT=:pserver:gr[ou]pe$i@fbd-serv:/home/etudiants/fbd1|2/gr[ou]pe$i/CVS
Pour WinCVS c'est via le menu "Admin"> Globals.

Commandes principales :

En fait vous les trouvez dans la doc ou par un : man | info cvs, je ne vais pas les détailler toutes ici.
Prenons simplement les principales.
- Cas 1 : ces fichiers sont dans votre ~/public_html sur le serveur.
Alors vous vous logguez par ssh sur le serveur, puis vous faites :
$ cd ~/public_html
$ cvs -d /home/etudiants/fbd[1|2]/gr[ou]pe$i/CVS/projetBD import -m "Sources importées" projetBD gr$ifbd1|2 debut

- Cas 2 : ces fichiers sont dans C:\Temp\Projet sur une machine Win2000/NT d'une des salles Turing ou Escher.
Alors vous lancez le client WinCVS, puis  menu  "Remote"> Import Module, puis dans l'onglet "Import Settings" vous précisez  le repository (projetBD), le "vendor tag" (gr$ifbd1|2 par exemple), le "release tag" (debut par exemple), éventuellement un message ("Sources importées" par exemple), et enfin dans l'onglet "Import Options" vous précisez le "Local Folder to Import", ici pour l'exemple C:\Temp\Projet. Si le module n'existe pas encore sur le serveur, cochez l'option "create CVS directories while importing".
Ici vous récupérez sur votre machine (Win2000/NT de Escher/Turing) les sources qui se trouvent sur  le serveur  pour y travailler (ou les copier pour chez vous). Il faut donc préciser un répertoire (où vous avez le droit d'écriture) dans lequel le client CVS copiera toute l'arborescence du module (i.e. du répertoire) que vous "checkez". A priori ce module est "projetBD" si vous avez effectué le import ci-dessus. D'un client UNIX, cela donne :
$ cd  my-copy-locale
$ cvs checkout projetBD  (en supposant que la variable CVSROOT est positionnée comme indiqué dans la note ci-dessus).
Pour WinCVS c'est le menu "Remote"> Checkout.
Sert à ajouter/supprimer des fichiers dans le "repository". En client UNIX :
$ cd my-copy-locale
$ cvs add|remove miseajour.php
$ cvs commit miseajour.php
Avec WinCVS : menu "Modify" > Add | Remove | Commit.

  Remarques