【作者】 Marc G. Fournier (
<scrappy@hub.org>
) 写于 1998-11-05 。
cvs checkout 命令有一个 -r 标志可以让你检查一个模块的某一修订版。这个标志使可以很容易地在未来的任何时检索构成 'tc' 模块的 6_4 版本的源代码:
cvs checkout -r REL6_4 tc
这一点很有用,例如,如果某人说那个版本里面有一个臭虫,但你不能在目前的工作拷贝里面找出那个臭虫。
【提示】你还可以用 -D 选项检查任意一天的模块的源码。
当你给多于一个文件打上相同的标记时,你可以把标记想像成"一个在由文件名与修订版本号组成的矩阵中蜿蜒的折线"。例如有 5 个文件,版本是下面的东西:
file1 file2 file3 file4 file5 1.1 1.1 1.1 1.1 /--1.1* <-*- TAG 1.2*- 1.2 1.2 -1.2*- 1.3 \- 1.3*- 1.3 / 1.3 1.4 \ 1.4 / 1.4 \-1.5*- 1.5 1.6
那么标记 TAG 将引用 file1-1.2, file2-1.3 等。
【注意】要创建一个发布的分支,还要在命令行上加一个 -b 选项,这是一样的事情。
因此,要创建 6.4 版本,我按照下面的方式做:
cd pgsql cvs tag -b REL6_4
这样就会为 RELEASE 树创建标记和分支。
现在,对那些有 CVS 访问(权限)的人,就太简单了。首先,创建两个子目录,RELEASE 和 CURRENT ,这样你不会混淆这两个。然后:
cd RELEASE cvs checkout -P -r REL6_4 pgsql cd ../CURRENT cvs checkout -P pgsql
这样将产生 RELEASE/pgsql 和 CURRENT/pgsql 两个目录树,从这时起,CVS 将跟踪某个位置分支在哪个目录树里面,并且允许两个树的独立更新。
如果你只在 CURRENT 源码树上干活,你只需要像开始标记修补版分支以前那样做事情就行了。
在你完成一个分支的初始检出后
cvs checkout -r REL6_4
任何你在那个目录结构里面做的事情都局限与那个分支。如果你对那个目录结构打了个补丁,然后在该目录里面做一次:
cvs commit
该补丁就应用到该分支并且只应用到该分支。