This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

Les numéros de révisions sont différents

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/IDÉE1 à la révision 5 ».

Pour plus de détails sur ce sujet, consultez la section intitulée « Révisions ».