访问分支

你可以通过两种方式进入分支:重新检出一份或是从现有的工作拷贝切换过去。

重新检出使用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.21.4.2)而迷惑。分支的标笺(tag)是相同的:rel-1-0-patches,所以这些文件是在相同的分支上。在以上的例子中,分支建立之前,driver.cbackend.c有更多的变更,因此它们的版本编号是不同的。

请参见[分支与修订版本]去了解分支如何构建原理的细节。