Fiches / Articles

Cadre Fonctionnel

Utilisation d’un gestionnaire de version

Cadre Technique

NT / CVS (Concurrent Versions System)

Identifiant 

SYS_CVS_01

Référent technique 


Version 

1.0

Auteur 

Alexandre Brillant

Date

04/01

Source

Http://www.cvshome.org

CVS est un outil très performant exploité dans de grands projets open-source comme Mozilla, KDE, Gnome

Son installation sous Windows NT est triviale et passe par un « installeur » qui ajoute un service CVS.

Son rôle est de :

Il est nécessaire que chaque développeur possède un compte CVS. Ce compte est simplement décrit dans un fichier texte dans le répertoire d’installation du serveur CVS. Chaque développeur doit disposer d’un programme (par défaut, un exécutable cvs en ligne de commande est fournie avec la distribution) client CVS. Il existe aussi des environnements complètement graphiques comme WinCVS ou tkCVS.

Chaque client doit mettre à jour la variable d’environnement CVSROOT avec le chemin d’accès vers CVS. Elle est normalement sous la forme " :pserver :utilisateur@Adresse IP ou nom du serveur :Path vers le repository ".

Exemple : set CVSROOT= ":pserver :hexadev@192.168.10.0:d:\cvs_repository"

CVS utilise un format de répertoire légèrement différent d'un format classique. Il ajoute aux répertoires classiques, des répertoires CVS contenant des informations d'exploitation. Ces répertoires CVS ne doivent jamais être modifiés.

Toutes les commandes CVS en ligne suivent la syntaxe CVS Une commande.

L'utilisateur doit commencer par récupérer le répertoire qui le concerne de développement par la commande cvs checkout "un répertoire". Sinon il est possible de créer un entrée nouvelle dans CVS par la commande cvs import en utilisant un répertoire existant.



Lorsqu'une modification est faite dans un répertoire CVS , utiliser la commande cvs commit. Cette commande ouvrira un éditeur de texte (notepad par défaut) pour que le développeur indique les changements opérés. La variable d'environnement EDITOR permet de spécifier un autre éditeur.

Une autre commande importante est la synchronisation des sources locales avec le repository . Cela se fait par la commande cvs update. Lorsqu'un conflit existe, c'est à dire un fichier modifié par deux développeurs en même temps, CVS adopte une stratégie de fusion automatique en se basant sur les lignes modifiées. Quand une même ligne à été modifiée différemment, une notification de conflit est faite demandant à l'un des parties de régler le problème. Le fichier source incriminé contiendra des commentaires indiquant les zones de conflits.

CVS ne créé pas les nouveaux sous-répertoires par défaut, il faut utiliser l’option –d lors d’un update.

L’option –P sert à supprimer les répertoires n’existant plus sur le serveur (cela ne concerne pas les répertoires qui n’ont jamais été placés dans le repository central).

Lors d'une synchronisation, tous les fichiers sont précédés d'un flag sous forme de caractère. M représente une modification, U un Update.

Lorsque la commande cvs update fait apparaître une liste de fichiers précédés par ‘ ?’. Cela signifie que ces fichiers ne sont pas présents sur le serveur. La commande

cvs add sert à ajouter un ou plusieurs fichiers (cvs add *.java). La commande cvs remove permet de marquer le fichier pour être supprimé.

L’option –k lors d’un ajout doit être utilisée pour tous les fichiers binaires (librairies, images…).

Terminer ces ajouts/suppressions par la commande cvs commit.

Pour connaître les changements effectués, la commande cvs log peut être utilisée avec un fichier ou un répertoire en argument.

La commande cvs diff suivie de deux numéros de version affiche les différences.

Exemple : cvs diff –c –r 1.0 –r 1.1 Test1.java, affichera les différences entre la version 1.0 et la version 1.1.

>cvs checkout projet_catalogue

Des changements sont effectués

>cvs update -Pd

Compilation

>cvs commit

Un répertoire doc est créé avec des pages html



>cvs add doc

>cvs add doc\*.html

>cvs add –k doc\*.gif

>cvs commit

Le fichier build2.xml est supprimé


>del build2.xml

>cvs remove build2.xml

>cvs commit

…

On consulte les corrections du Makefile

>cvs log Makefile

On consulte les changements entre deux versions

>cvs diff –c –r 1.3 –r 1.2 Makefile


Récapitulatif

Principale commandes :

cvs import flag1 flag2 un répertoire

Ajoute dans le serveur CVS une nouvelle entrée. Cette opération ne doit être faite qu’une seule fois !

Ex : cvs import init init0 projet_catalogue


cvs checkout un répertoire

Initialisation d’un répertoire CVS local


cvs commit

Synchronisation des sources partagés du serveur avec les sources en local

cvs add

Ajouter de nouveaux fichiers

Ex: cvs add *.java

cvs remove

Supprimer des fichiers. Supprimer aussi manuellement les fichiers.

cvs log un fichier ou répertoire

Affiche tout l'historique de modification

cvs diff –c

Affiche les changements entre plusieurs versions

Ex: cvs diff –c –r 1.4 –r 1.5 Makefile

Flags de synchonisation :

M

Modification

U

Mise à jour

C

Conflit

?

Un nouveau fichier