Previous Next Contents

6. L'arbre de révision

Nous avons vu que les numéros de révisions démarraient à 1.1 et, qu'ensuite, la commande ci incrémentait uniquement le level number. Pour incrémenter le release number il faut le faire explicitement avec l'option -r de ci, par exemple :

ci -r2.1 foo.c

assigne le numéro 2.1 à la nouvelle révision. Un nouveau check-in donnera ensuite 2.2.

Un arbre de révision est constitué normalement d'une branche unique appelée tronc. On peut néanmoins créer des branches latérales. Par exemple, supposons l'arbre de révision suivant :

1.1 -> 1.2 -> 1.3 -> 1.4 -> 2.1 -> 2.2 -> 2.3 ...

Cet arbre a 7 révisions groupées en 2 releases. La release 1.4 est en activité sur un site client, tandis que la release 2 est en développement.

Imaginons maintenant que le client demande une correction dans la révision 1.4. Nous allons alors créer une branche à la révision 1.4, et insérer les corrections sur cette branche. La première branche démarrant à 1.4 est numérotée 1.4.1 et les révisions sur cette branche sont numérotées 1.4.1.1, 1.4.1.2, 1.4.1.3 ... Cette notation permet de créer d'autres branches à partir de 1.4. Les étapes nécessaires sont les suivantes :

co -r1.4 foo.c
editer foo.c pour apporter les corrections
ci -r1.4.1 foo.c

Nous obtenons alors l'arbre suivant :

1.1 -> 1.2 -> 1.3 -> 1.4 -> 2.1 -> 2.2 -> 2.3 ...
                       \
                        \
                         \> 1.4.1.1 -> ...

Il peut être nécessaire d'incorporer les différences entre 1.4 et 1.4.1.1 dans une révision de la release 2. Pour cela, il faut utiliser la commande rcsmerge qui automatise le processus.

Une autre raison de créer une branche est liée au problème posé par un programmeur ayant verrouillé une révision pour la modifier et qui n'a pas encore effectué le dépôt de ses modifications. Si un autre programmeur désire modifier cette révision, il ne peut pas le faire tant que le verrou n'est pas supprimé. La solution est de créer une branche, et ensuite, une fois que le premier programmeur a effectué son check-in, utiliser la commande rcsmerge pour incorporer les deux révisions.


Previous Next Contents