Dans CVS, les numéros de révisions sont associés à un fichier. Ceci est du au fait que CVS stocke ses données dans des fichiers RCS ; à chaque fichier est associé un fichier RCS dans le dépôt et la structure du dépôt correspond plus ou moins à l'arborescence de votre projet.
Dans Subversion, le dépôt ressemble à un système de fichiers unique. Chaque propagation conduit à un système de fichiers entièrement nouveau ; au fond, le dépôt est un tableau d'arborescences de fichiers. Chacune de ces arborescences est étiquetée avec un numéro de révision. Quand quelqu'un parle de la « révision 54 », il parle d'une arborescence particulière (et indirectement, de l'état du système de fichiers après la cinquante-quatrième propagation).
Techniquement, il n'est pas correct de parler de
« la révision 5 du fichier machin.c
».
À la place, on devrait dire « machin.c
tel qu'il était en révision 5 ». Soyez également prudent
quand vous faites des suppositions sur les évolutions d'un
fichier. Dans CVS, les révisions 5 et 6 de
machin.c
sont toujours différentes. Dans
Subversion, le plus probable est que machin.c
n'a pas changé entre les révisions 5 et
6.
De la même manière, dans CVS, une étiquette et une branche
sont des annotations sur un fichier ou sur l'information de
version de ce fichier. En revanche, dans Subversion, une branche
ou une étiquette sont des copies complètes d'une arborescence
(situées respectivement par convention dans les répertoires
/branches
et /tags
qui
se trouvent à la racine de l'arborescence du dépôt, à côté de
/trunk
). Dans l'ensemble du dépôt, plusieurs
versions de chaque fichier peuvent être visibles : la
dernière version à l'intérieur de chaque branche, la version au
sein de chaque étiquette et, bien sûr, la dernière version dans le
tronc lui-même (sous /trunk
). Ainsi, pour
être vraiment précis, il convient de dire
« machin.c
tel qu'il était dans
/branches/IDEE1
à la révision
5 ».
Pour plus de détails sur ce sujet, consultez la section intitulée « Révisions ».