下一个: , 上一个: Creating a branch, 上层: Branching and merging


5.3 访问分支

你可以通过两种方式恢复分支:重新从仓库检出一份或是从现有的工作副本切换过去。

为了从仓库检出i一个分支,使用 `checkout' 命令并带上 `-r' 标志,后面是这个分支的标签(tag)名 (参阅 Creating a branch):

     $ 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) – 那就是 cvs 告诉你当前工作文件分支号的方式:

     $ 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')而迷惑。 分支的标签是相同的,`rel-1-0-patches',所以这些文件是在相同的分支上。 数字简单地反映在每个文件的版本历史中在制造分支的点。 在以上的例子中,分支建立之前,`driver.c' 比 `backend.c' 有更多的变更,因此它们的版本编号是不同的。

请参阅 Branches and revisions 了解如何构建分支号的细节。