下一个: Branches and revisions, 上一个: Creating a branch, 上层: Branching and merging
你可以通过两种方式恢复分支:重新从仓库检出一份或是从现有的工作副本切换过去。
为了从仓库检出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 了解如何构建分支号的细节。