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
ant´erieure 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 renvoy´e 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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!