Clearcase - findmerge for recursive branches

时间:2015-09-07 11:47:18

标签: clearcase

我有一个ClearCase main分支,并且在主分支中创建了一个子分支A
我再次通过编辑配置规范从Subbranch B创建了分支A

现在我需要使用findmerge命令合并两个分支中的文件 子分支A中有一些文件未在子分支B中签出。那么,我可以使用findmerge命令将来自嵌套分支的最新文件合并到主分支的方式是什么。

findmerge . -fversion /main/brancha/branchb/latest -print 

只提供在分支B下更改的文件,而不是在分支A上 有些文件不需要branchB,文件不会在分支B下创建。

3 个答案:

答案 0 :(得分:1)

您需要合并:

  • 首先branchAfindmerge . -fversion /main/brancha/latest -print
  • 然后branchBfindmerge . -fversion /main/brancha/branchb/latest -print

这样,您会找到branchA的文件,然后是branchB的文件。

答案 1 :(得分:1)

另一个选择是有一个视图(我给它一个视图标记,在这个例子中是'other_view'),其配置规范首先选择分支B然后选择分支A,例如:

  

元素* ... / branchB / LATEST
  元素* ... / branchA / LATEST
  元素* / main / LATEST

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

  

cleartool findmerge。 -ftag other_view -print

答案 2 :(得分:0)

虽然来自@VonC和@hack的答案都可以正常工作,并且可以确定哪些内容需要合并,但在许多情况下,实际执行合并的最佳方法是从分支B合并到分支A(解析)沿途的任何冲突)然后从分支A合并到主。

  • 来自配置规范中有分支A的视图: findmerge。 -fversion / main / brancha / branchb / latest -merge
  • 从配置规范中只有主要活动的视图: findmerge。 -fversion / main / brancha / latest -merge

这使您可以解决分支A而不是主分支中的任何合并冲突,从而降低破坏团队其余部分构建的风险。在某些情况下,它是没有意义的(如果分支A显然不应该包含来自分支B的内容),但是当它发生时,我发现它是没有额外工作的更好选择。