Écrit par Marc G. Fournier (<scrappy@hub.org>) le 05/11/1998.
La commande cvs checkout accepte un paramètre, -r, qui permet d'obtenir une révision particulière d'un module. Il est possible, par exemple, de retrouver les fichiers sources 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 bogue dans cette version, mais qu'il n'apparaît pas dans la version courante.
Un module peut également être extrait tel qu'il était à une date donnée en utilisant l'option -D.
Lorsque plusieurs fichiers ont la même marque, celle-ci peut être représentée comme « une courbe tracée dans la matrice des noms de fichiers et des numéros de révision ». Soient 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 :
cd pgsql cvs tag -b REL6_4
ce qui crée la marque et la branche pour l'arbre de la version.
Pour ceux qui disposent d'un accès CVS™, il est facile de créer des répertoires séparés pour chaque version. D'abord, on crée deux répertoires, VERSION et COURANT, afin de ne pas les mélanger. Puis :
cd VERSION cvs checkout -P -r REL6_4 pgsql cd ../COURANT cvs checkout -P pgsql
Cela crée deux arbres de répertoires, VERSION/pgsql et COURANT/pgsql. À partir de ce moment, CVS™ sait quel arbre de référence est dans quel répertoire, et permet des mises à jour indépendantes de chaque arbre.
Pour ne travailler que sur l'arbre COURANT, il suffit de suivre ce qui est indiqué jusqu'à la partie traitant du marquage des branches de versions.
Après avoir fait l'extraction initiale d'une branche
cvs checkout -r REL6_4
tout ce que y est fait dans ce répertoire est limité à cette branche. Un correctif appliquée à cette structure de répertoires suivi d'un
cvs commit
dans ce répertoire, n'applique le correctif qu'à cette branche et uniquement à cette branche.