Principales commandes CVS
Patrick Reignier
March 15, 2005
1 Principe g´en´eral
CVS est un gestionnaire de version. Il permet de faciliter le travail en ´equipe en prenant en charge
la gestion des versions des diff´erents fichiers. Le principe g´en´eral est le suivant :
La liste des fichiers du projet est maintenue sur le serveur CVS.
Toute nouvelle personne arrivant dans le projet d´eploie ces fichiers dans son propre r´epertoire.
Elle en r´ecup`ere donc une copie locale.
Avant de travailler sur un fichier, elle commence par le mettre `a jour en r´ecup´erant la derni`ere
version disponible. Cela permet d’int´egrer les modifications faˆıtes par les membres de son
´equipe.
Elle modifie un ou plusieurs fichiers du projet.
Une fois les modifications valid´ees, elle r´eint`egre les nouvelles versions du fichier sur le serveur
afin de les rendre disponibles aux autres membres.
A tout moment, un programmeur peut demander au serveur de lui restituer une version
anerieure du fichier et donc par exemple, annuler une modification incorrecte.
CVS est donc compos´e de deux parties : un programme serveur, charg´e de maintenir les
diff´erentes versions des fichiers du projet, et un programme client permettant `a chaque membre
du groupe d’envoyer des requˆetes au serveur.
Le programme client est un programme en ligne de commande disponible sur toutes les plate-
formes. Il existe de nombreuses interfaces graphiques construites au-dessus de la ligne de com-
mande. Il est ´egalement int´egr´e aux environnements de d´eveloppement tels que Netbeans ou
Eclipse.
Le reste du document pr´esente quelques exemples d’utilisation de cvs en ligne de commande.
2 configuration
Le client en ligne de commande s’appelle cvs. Afin de pouvoir fonctionner, il faut lui indiquer
plusieurs donn´ees de configuration telles que le nom du serveur, l’emplacement du d´epˆot de fichier
sur ce serveur, le login de connexion ainsi que le protocole utilis´e. Ces informations sont fournies
dans la variable d’environnement CVSROOT. Cette variable sera bien ´evidemment mise dans votre
fichier .cshrc. Exemple :
setenv CVSROOT :pserver:[email protected]:/usr/local/cvs
Pour acc´eder au serveur, il faut d’abord s’authentifier :
$ cvs login
1
Licence Professionnelle TAI, Projet P6 cvs : principes g´en´eraux p. 2
L’authentification va cr´eer un fichier .cvspass `a la racine de votre compte. Ce fichier contient en
particulier votre identifiant et votre mot de passe. Son contenu est renvoe au serveur `a chaque
requˆete cvs (cf les cookies en http). Une session cvs dure aussi longtemps que ce fichier existe et
survit donc `a une d´econnexion et reconnexion de votre compte UNIX.
Pour mettre un terme `a la session cvs :
$ cvs logout
3 Mise en place d’un projet CVS
$ cd MesFichiersInitiaux/
$ cvs import -m "debut de projet pour la Web App" MyWebApp reignier start
N MyWebApp/build.properties
N MyWebApp/build.xml
cvs import: Importing /local_home/local/cvs/MyWebApp/src
N MyWebApp/src/A.java
cvs import: Importing /local_home/local/cvs/MyWebApp/web
cvs import: Importing /local_home/local/cvs/MyWebApp/web/WEB-INF
N MyWebApp/web/WEB-INF/web.xml
No conflicts created by this import
$
Le projet est maintenant connu sous cvs sous le nom : MyWebApp
4 D´eploiement des fichiers sur un poste client
Un nouvel utilisateur peut maintenant r´ecup´erer la totalit´e des fichiers par un check out .
$ cvs co MyWebApp
U MyWebApp/build.properties
U MyWebApp/build.xml
cvs checkout: Updating MyWebApp/src
U MyWebApp/src/A.java
cvs checkout: Updating MyWebApp/web
cvs checkout: Updating MyWebApp/web/WEB-INF
U MyWebApp/web/WEB-INF/web.xml
$
5 Ajout d’un nouveau fichier
Le second utilisateur ajoute un nouveau fichier source dans le r´epertoire src. Il d´eclare ce nouveau
fichier sous cvs :
$ cvs add B.java
cvs add: scheduling file ‘B.java’ for addition
cvs add: use ’cvs commit’ to add this file permanently
A ce stade, le fichier n’est toujours pas transf´er´e vers le serveur. Il est juste enregistr´e comme
ayant ´et´e ajout´e au projet. Le transfert effectif n’aura lieu que lors de la commande commit. En
r`egle g´en´erale, la commande commit permet de transf´erer vers le serveur toutes les modifications
apport´ees au projet, dans le r´epertoire o`u la commande est ´emise, et dans tous les sous-r´epertoires.
Si l’on veut donc transf´erer vers le serveur toutes les modifications apport´ees `a l’ensemble du projet,
on se mettra donc dans le r´epertoire racine de celui-ci.
Patrick Reignier 2
Licence Professionnelle TAI, Projet P6 cvs : principes g´en´eraux p. 3
$ pwd
/home/reignier/tmp/MyWebApp/src
$ cd ..
$ cvs commit -m "AJout d’une nouvelle classe B"
cvs commit: Examining .
cvs commit: Examining src
cvs commit: Examining web
cvs commit: Examining web/WEB-INF
RCS file: /local_home/local/cvs/MyWebApp/src/B.java,v
done
Checking in src/B.java;
/local_home/local/cvs/MyWebApp/src/B.java,v <-- B.java
initial revision: 1.1
done
$
6 Remise `a jour d’une arborescence
Le premier utilisateur souhaite savoir s’il est `a jour. (il ne l’est pas puisqu’il ne poss`ede pas le
nouveau fichier B.java). Pour ce faire, il utilise la commande update. De la mˆeme mani`ere que
commit,update v´erifie que le r´epertoire d’o`u la commande est ´emise et tous ses sous-r´epertoires
sont `a jour.
$ cvs update
cvs update: Updating .
cvs update: Updating src
U src/B.java
cvs update: Updating web
cvs update: Updating web/WEB-INF
Patrick Reignier 3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !