你可以通过两种方式进入分支:重新检出一份或是从现有的工作拷贝切换过去。
重新检出使用checkout命令并带上-r标识,后面是这个分支的标笺(tag)名。[建立一个分支]:
$ cvs checkout -r rel-1-0-patches tc |
或者如果你已有了一个拷贝,你可以使用update -r命令转到这个分支:
$ cvs update -r rel-1-0-patches tc |
或者使用另一个等同的命令:
$ cd tc $ cvs update -r rel-1-0-patches |
这对现有拷贝为主干代码或是其它分支都是有效的。上面的命令将把它转到命名的分支。同update命令相类似。update -r合并你所做的任何改变,请注意是否有冲突出现。
一但你的工作拷贝已经转向一个特定的分支。它将一直保持在这个分支内,除非你又做了其它的操作。这意味着从这个工作拷贝提交的变更将加到这个分支的新版本中,而不影响到主干版本和其它分支代码。
想看一个工作拷贝是基于哪一个分支,可以使用status命令。在它们输出中查找一个Sticky tag的域[粘性的标签(Sticky tags) 在 第 4 章]。那就是你的当前分支号。
$ cvs status -v driver.c backend.c
===================================================================
File: driver.c Status: Up-to-date
Version: 1.7 Sat Dec 5 18:25:54 1992
RCS Version: 1.7 /u/cvsroot/yoyodyne/tc/driver.c,v
Sticky Tag: rel-1-0-patches (branch: 1.7.2)
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
rel-1-0-patches (branch: 1.7.2)
rel-1-0 (revision: 1.7)
===================================================================
File: backend.c Status: Up-to-date
Version: 1.4 Tue Dec 1 14:39:01 1992
RCS Version: 1.4 /u/cvsroot/yoyodyne/tc/backend.c,v
Sticky Tag: rel-1-0-patches (branch: 1.4.2)
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
rel-1-0-patches (branch: 1.4.2)
rel-1-0 (revision: 1.4)
rel-0-4 (revision: 1.4)
|
请不要因为每个文件的分支号不同(1.7.2和1.4.2)而迷惑。分支的标笺(tag)是相同的:rel-1-0-patches,所以这些文件是在相同的分支上。在以上的例子中,分支建立之前,driver.c比backend.c有更多的变更,因此它们的版本编号是不同的。
请参见[分支与修订版本]去了解分支如何构建原理的细节。