本手册旨在介绍 Subversion 1.4。如果您使用的是更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的手册。

修订号现在不同了

在 CVS 中,修订号是针对每个文件的。这是因为 CVS 将其数据存储在 RCS 文件中;每个文件在存储库中都有一个相应的 RCS 文件,并且存储库大致按照您的项目树的结构进行布局。

在 Subversion 中,存储库看起来像单个文件系统。每次提交都会生成一个全新的文件系统树;本质上,存储库是一个树数组。这些树中的每一个都用一个唯一的修订号标记。当有人谈论“修订版本 54”时,他们指的是特定的树(以及间接地,文件系统在第 54 次提交后的样子)。

从技术上讲,谈论“文件 foo.c 的修订版本 5”是不正确的。相反,应该说“文件 foo.c 在修订版本 5 中的样子”。此外,在对文件的演变做出假设时要小心。在 CVS 中,文件 foo.c 的修订版本 5 和 6 始终是不同的。在 Subversion 中,文件 foo.c 很可能在修订版本 5 和 6 之间没有发生 变化

类似地,在 CVS 中,标签或分支是对文件或该单个文件版本信息的注释,而在 Subversion 中,标签或分支是整个树的副本(按照惯例,位于存储库顶层目录中的 /branches/tags 目录中,与 /trunk 相邻)。在整个存储库中,每个文件的许多版本可能可见:每个分支上的最新版本、每个标记版本,当然还有主干上的最新版本。因此,为了进一步细化这些术语,人们经常会说“文件 foo.c 在分支 /branches/REL1 上修订版本 5 中的样子”。

有关此主题的更多详细信息,请参见 名为“修订版本”的部分