合并整个分支

你可以合并另一个分支上的修改到你的工作目录,只要在update命令中加-j branchname的标识。使用-j branchname将合并这个派生分支点与原版本的最新版之间的变更(到你的工作目录)。

-j的意思是“join”。

我们现在来考察下面这棵树:

+-----+    +-----+    +-----+    +-----+
! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !      <- 主干
+-----+    +-----+    +-----+    +-----+
                !
                !
                !   +---------+    +---------+
Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !
                    +---------+    +---------+

分支1.2.2分配了一个R1fix的名字。下面的例子假定模块mod只包含一个文件m.c

$ cvs checkout mod               # 得到最新的1.4版 

$ cvs update -j R1fix m.c        # 合并所有在分支中的改变,即:1.2与
                                 # 1.2.2.2之间的变化到这个文件的工作目录。

$ cvs commit -m "Included R1fix" # 建立1.5版

在合并时可能会发生冲突,如果这种情况发生,你可以在提交新版本之前解决它。[冲突示例 在 第 10 章]。

如果你的原文件中包含关键字[第 12 章]。你可能会得到比严格意义上的冲突更多的冲突信息。请参见[合并与关键字(keywords)],去了解如何避免这个问题。

checkout命令也支持使用-j branchname参数。下面的例子同上面所用的例子有相的效果。

$ cvs checkout -j R1fix mod
$ cvs commit -m "Included R1fix"

注意使用update -j tagname也许行但结果可能不是你想要的。详见[合并能添加和删除文件]。