CVS
Introduction
Ce document à pour but de faire un petit rappel sur les principales commandes du client "cvs".
Même si plusieurs utilitaires existent pour commander les fichiers cvs, il est utile de comprendre le fonctionnement de base de "cvs".
Installation et configuration du client cvs en mode client/serveur
Plusieurs modes de connexions existent pour se connecter à un serveur cvs, dans notre cas nous utiliserons la méthode client/serveur (pserver).
Pour configurer ce mode d’utilisation, il faut renseigner la variable d’environnement CVSROOT, comme suit :
CVSROOT= :pserver : !-- var prefix = '#109;a' + 'il' + 'to'; var path = 'hr' + 'ef' + '='; var addy73705 = 'xavier' + '@'; addy73705 = addy73705 + 'logiclic' + '.' + 'dyndns' + '.' + 'org'; document.write( '' ); document.write( addy73705 ); document.write( '' ); //-->\n // --> Cet adresse mail est protégé contre les spambots. Vous avez d'activer le javascript pour la visualiser. -- document.write( '' ); // -->:g:\logiciel
"pserver" étant le mode de connexion
"xavier" le nom d’utilisateur
"logiclic.dyndns.org" le nom du serveur
"g:\logiciel" le nom du projet
Création d’une copie de travail
Maintenant que la configuration est réalisée, il suffit de créer une copie de travail.
Il s’agit d’une copie des fichiers se trouvant sur le serveur "cvs".
C’est dans cette copie que nous travaillerons pour effectuer les mise à jours, créations de fichiers, …
Cette commande devra être également utilisée pour mettre à jour son répertoire de travail vis à vis de toutes les mises à jours des autres développeurs.
Pour obtenir une copie de travail des fichiers d’un projet, il faut employer la commande checkout.
cd monRepertoireDeTravail
cvs checkout jes
La commande créera un répertoire "jes" dans lequel seront copiés tous les fichiers et répertoires du serveur.
Utilisation normale
Connexion au serveur "cvs"
La seule chose à faire pour ce connecter au serveur "cvs" est de lancer la commande "login" afin que "cvs" vérifie le nom d’utilisateur et le mot de passe :
cvs login
Intégration des modifications externes
Cette commande permet d’intégrer dans la version que l’on a les modifications réalisées par d’autres développeurs. Il faudra donc exécuter cette commande avant d’archiver une nouvelle version. Si cvs trouve des conflits entre la version que l’on possède et la version sur le serveur, elle ajoutera des commentaires sur les fichiers pour indiquer les conflits. Si vous êtes le seul à travailler sur un fichier, vous pouvez tenter directement un archivage.
De toutes façons, "cvs" vous indiquera que quelqu’un à modifié le fichier le cas échéant.
cvs update Printing.java
Après cette commande, nous avons la certitude que notre version est la plus récente.
Si l’on souhaite mettre à jour la version sur le serveur, il faudra réaliser un archivage.
Archivage
La commande d’archivage permet de figer les fichiers dans un état donné (nouvelle version) sur le serveur "cvs".
Si aucun nom de fichier n’est donné, alors "cvs" prendra tous les fichiers du répertoire courant et des sous-répertoires.
Ce mode de fonctionnement est commun à toutes les commandes de "cvs".
cd repertoireAArchiver
cvs commit -m "Commentaire sur les modifs ou la version"
La nouvelle version aura une nouvelle version donné par le serveur.
On peut toutefois spécifier soit-même le numéro de version :
Cvs commit -m "version 2.0" -r 2.0
Historique et état des fichiers
Pour voir l’historique des modifications d’un fichier, il suffit de saisir :
cvs log MaClasse.java
Une autre commande permet de voir la version actuelle d’un fichier
cvs status MaClasse.java
Ajout de fichiers
Pour ajouter un fichier a la base "cvs", il faut utiliser la commande "add" comme suit :
cvs add -m "ajout de l’impression" Printing.java
A ce niveau, le fichier n’est ajouté que dans la copie de travail, elle sera disponible sur le serveur après validation :
cvs commit -m "ajout de l’impression" Printing.java
Pour ajouter un fichier binaire au "repository" de "cvs" il faut ajouter le commutateur "-kb" à la commande "add".
cvs add -kb titi.gif
Suppression de fichiers
Après une suppression d’un fichier sur la copie locale, il faut mettre à jour le serveur si l’on souhaite que cette suppression soit efficace sur le serveur "cvs".
cvs remove Printing.java
cvs commit Printing.java
Revenir en arrière
A tout moment on peut revenir à une version précédente. Pour cela il suffit d’utiliser la commande "update" avec une contrainte sur la version comme suit :
cvs update -r1.1 jes
Création d’un livrable
La création d’un livrable, c’est à dire d’une version pour l’ensemble du projet se fait en 2 étapes :
- La création d’un nom symbolique : nom de la version
- L’extraction "propre" de la version (sans les fichiers cvs)
cvs tag BETA1.0 jes
cd repertoireDestination
cvs export -r BETA1.0 jes
Visualisation des différences entre 2 versions
Une commande de "cvs" permet de visualiser les différences d’un fichier en la version courante et une version antérieure.
cvs diff -r1.1 Toto.java
Une autre commande permet de d’afficher le contenu des fichiers en préfixant chaque ligne par le nom de l’auteur, la date et le premier numéro de version dans laquelle la ligne était présente.
cvs annotate Toto.java
CVS en un graphique
Utilisation des variables cvs
Ces variables permettent au source de prendre la valeur de données générées par le serveur "cvs", comme la version, l’auteur,…
Pour pouvoir les utiliser, il suffit de mettre dans le code source un tag bien particulier, voici un exemple :
En-tête de fichier :
/** $ID$ **/
En-tête de classe :
/**
*
*@author $AUTHOR$
*@version $Revision$ $Date$
*/








