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( '' ); // -->Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir :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
  • cvs tag BETA1.0 jes

  • L’extraction "propre" de la version (sans les fichiers cvs)
  • 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$
*/

Joomla 1.6 Templates designed by Joomla Hosting Reviews