4.版本号现在不同了

Posted on Posted in 附录b

版本号现在不同了

在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旁边)。版本库作为一个整体,每个文件的许多版本可见:每个分支的最新版本,每个标签的最新版本以及trunk本身的最新版本。所以,我们再精炼一下术语,我们说“foo.c在修订版本5出现在/branches/REL1

更多细节见“修订版本”一节.