F.2. Organisation de l'arbre CVS

Auteur : Écrit par Marc G. Fournier () le 05/11/1998.

La commande cvs checkout a un paramètre, -r, qui permet d'obtenir une révision particulière d'un module. Ce paramètre permet par exemple de retrouver les fichiers source de la version 6_4 du module 'tc' à tout moment dans le futur.

$ cvs checkout -r REL6_4 tc
   

C'est en particulier utile si quelqu'un pense qu'il y a un problème dans cette version, mais que vous ne trouvez pas d'erreur dans la version courante.

Astuce : Vous pouvez aussi extraire un module tel qu'il était à une date donnée en utilisant l'option -D.

Lorsque vous marquez plus d'un fichier avec une marque particulière, vous pouvez vous représenter la marque comme << une courbe tracée dans la matrice des noms de fichiers et des numéros de révision >>. Supposons que nous ayons 5 fichiers avec les révisions suivantes :

             fichier1 fichier2 fichier3 fichier4 fichier5

             1.1      1.1      1.1      1.1  /---1.1*    <-*-  MARQUE
             1.2*-    1.2      1.2    --1.2*-
             1.3  \-- 1.3*-    1.3   /  1.3
             1.4           \   1.4  /   1.4
                            \--1.5*-    1.5
                               1.6
   

alors la marque MARQUE référence fichier1-1.2, fichier2-1.3, etc.

Note : Pour créer une branche de version, à part l'option -b ajoutée sur la ligne de commande, c'est la même chose.

Ainsi, pour créer la version 6.4, j'ai fait :

$ cd pgsql
$ cvs tag -b REL6_4
   

ce qui créera la marque et la branche pour l'arbre de la version.

Pour ceux qui ont un accès CVS, il est simple de créer des répertoires séparés pour chaque version. D'abord, créez deux répertoires, VERSION et COURANT, afin de ne pas les mélanger. Puis :

cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cvs checkout -P pgsql
   

Cela crée deux arbres de répertoires, VERSION/pgsql et COURANT/pgsql. À partir de ce moment, CVS gardera trace de quel arbre de référence est dans quel répertoire, et permettra des mises à jour indépendantes de chaque arbre.

Si vous ne travaillez que sur l'arbre CURRENT, faites tout ce qui est indiqué jusqu'à ce que nous ayons commencé à marquer les branches de versions.

Après avoir fait l'extraction initiale d'une branche

$ cvs checkout -r REL6_4
   

tout ce que vous faites dans ce répertoire est limité à cette branche. Si vous appliquez une correction à cette structure de répertoires et faites un

cvs commit
   

dans ce répertoire, la correction est appliquée à cette branche et seulement à cette branche.