你可以合并另一个分支上的修改到你的工作目录,只要在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也许行但结果可能不是你想要的。详见[合并能添加和删除文件]。