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
- Installation d'un client CVS.
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.
"import"
Vous avez
déjà des répertoires et fichiers
.php et vous voulez les utilisez pour démarrer votre "projetBD"
dans votre repository sur le serveur.
- 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.
"add", "remove", "commit"
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.
- Pour le reste (différences entre fichiers, "history" des
fichiers, status, tags...) je vous renvoie à la doc. C'est ce
qui correspond au menu "Query" de WinCVS.
Remarques
- Avec WinCVS vous pouvez effectuer les commandes directement dans
la fenêtre "shell", et si vous installez en plus l'extension
Python, vous pourrez utiliser des macros.
- Il existe un logiciel semblable à CVS, plus puissant que
ce dernier (mais moins populaire ?) Subversion. Pour
l'instant, à moins qu'il n'y ait demande, le serveur subversion
n'est pas actif sur fbd-serv.
- Bien sûr il existe des serveurs/clients CVS pour toutes les
plate-formes, comme MacCvsPro, MacCvsClient pour les Mac, mais aussi
différents clients écrits dans différents langages
(jCVS, TkCVS, Cvs for DreamWeaver etc).
- Le password côté serveur est stocké (sous
forme cryptée) dans le fichier
/home/etudiants/fbd[1|2]/gr[ou]pe$i/CVS/CVSROOT/passwd
.
Le fait de changer votre password via la commande "smbpasswd" ne
modifie pas le contenu de ce fichier. Donc si vous voulez changer votre
passwd cvs, faites-le « à la main » : (fbd-serv)$
crypt 'monpasswd' >
/home/etudiants/fbd[1|2]/gr[ou]pe$i/CVS/CVSROOT/passwd