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.

版本号的编号不再相同

在 CVS 中, 版本号的编号是特定于每个文件的, 这是因为 CVS 把数据 存放在 RCS 文件中, 每个文件在仓库中都有一个对应的 RCS 文件, 而且 仓库的目录结构基本上等同于项目的目录结构.

而在 Subversion 中, 仓库看起来像是一个单一的文件系统, 每次提交 都会生成一棵全新的文件系统树, 从本质上讲仓库就是文件系统树组成的数 组. 每一棵文件系统树都由一个单一的版本号进行标记, 当人们在谈论 版本号 54 时, 其实他们谈论的是一棵特定的文件系统树 (或者说在第 54 次提交后的文件系统).

从技术上讲, 文件 foo.c 的版本号 5 是不正确的说法, 正确的说法是 在版本号为 5 时, 文件 foo.c. 另外, 在假定文件的演变时还要注意, 在 CVS 中, foo.c 的版本号 5 和版本号 6 肯定是不同 的, 但是在 Subversion 中, 从版本号 5 到版本号 6, foo.c 可能根本 发生什么变化.

类似的, 在 CVS 中, 标签和目录只不过是文件或文件版本信息上的注释, 而对于 Subversion, 标签和分支是整棵文件系统树的拷贝 (按照惯例, 标签和 分支通常放在仓库顶层目录的 tags/branches/ 子目录内, 和 tags/, branches/ 同级的目录还有 trunk/). 在整个仓库中, 每个文件的多个版本都是可见的: 每个分支的最新版, 每个标签, 当然还有主干的最新版. 因此, 为了让术语更加准确, 人们经常会说成 在版本号为 5 时, 分支 branches/REL1 里的文件 foo.c.

关于版本号的更多内容, 见 “版本号”一节.