Écrit par Marc G. Fournier (<scrappy@hub.org>) 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.
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.
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.