本手册旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您正在运行其他版本的 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
在修订版 5 中的 /branches/REL1
中的样子”。
有关此主题的更多详细信息,请参阅 名为“修订版”的部分。