Clearcase-递归分支的findmerge

Clearcase-递归分支的findmerge,clearcase,Clearcase,我有一个ClearCasemain分支,还有一个子分支a是从main分支创建的。 通过编辑配置规范,我再次创建了subbranchB子分支A 现在我需要使用findmerge命令合并两个分支中的文件。 支行A中有一些文件未在支行B中签出。那么,如何使用findmerge命令将两个嵌套分支中的最新文件合并到主分支中呢 findmerge . -fversion /main/brancha/branchb/latest -print 这只提供在分支B下而不是分支A上更改的文件。 有些文件不需要b

我有一个ClearCase
main
分支,还有一个子分支
a
是从main分支创建的。
通过编辑配置规范,我再次创建了subbranch
B
子分支
A

现在我需要使用
findmerge
命令合并两个分支中的文件。
支行
A
中有一些文件未在支行
B
中签出。那么,如何使用findmerge命令将两个嵌套分支中的最新文件合并到主分支中呢

findmerge . -fversion /main/brancha/branchb/latest -print 
这只提供在分支B下而不是分支A上更改的文件。
有些文件不需要
branchB
,也没有在分支
B
下创建文件。您需要合并:

  • 第一个
    branchA
    findmerge-版本/main/brancha/latest-打印
  • 然后
    branchB
    findmerge-f版本/main/brancha/branchb/latest-打印

这样,您将找到来自
branchA
的文件,然后是来自
branchB

的文件。另一个选项是拥有一个视图(在本例中,我给它一个视图标记“other_view”),其配置规范首先选择分支B,然后选择分支a,例如:

元素*../branchB/LATEST
元素*../branchA/LATEST
元素*/主元素/最新元素

从选择/main/LATEST的视图中,您可以使用“-ftag”选项“findmerge”从该“其他”视图选择的版本合并。以下命令将预览要合并的内容:

cleartool findmerge-ftag其他视图-打印


尽管@VonC和@hack的答案都很有效,并且可以确定哪些内容需要合并,但在许多情况下,实际执行合并的最佳方法是从分支B合并到分支a(解决沿途的任何冲突),然后从分支a合并到主分支

  • 从配置规范中具有活动分支的视图:findmerge-f版本/main/brancha/branchb/latest-合并
  • 从配置规范中只有main处于活动状态的视图:findmerge-f版本/main/brancha/latest-合并

这允许您在分支A中而不是在主分支中解决任何合并冲突,从而降低团队其他成员破坏构建的风险。在某些情况下,它没有意义(如果分支A明确不应该包含来自分支B的内容),但当它包含时,我发现这是一个更好的选择,不需要额外的工作。

合并是否会处理分支a和分支b中的文件,并重写旧文件并保留最新的文件?@Bhadrinarayanan是的,如果你按正确的顺序进行:先a,然后b。