我有一个ClearCase main
分支,并且在主分支中创建了一个子分支A
。
我再次通过编辑配置规范从Subbranch B
创建了分支A
。
现在我需要使用findmerge
命令合并两个分支中的文件
子分支A
中有一些文件未在子分支B
中签出。那么,我可以使用findmerge命令将来自嵌套分支的最新文件合并到主分支的方式是什么。
findmerge . -fversion /main/brancha/branchb/latest -print
只提供在分支B下更改的文件,而不是在分支A上
有些文件不需要branchB
,文件不会在分支B
下创建。
答案 0 :(得分:1)
您需要合并:
branchA
:findmerge . -fversion /main/brancha/latest -print
branchB
:findmerge . -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而不是主分支中的任何合并冲突,从而降低破坏团队其余部分构建的风险。在某些情况下,它是没有意义的(如果分支A显然不应该包含来自分支B的内容),但是当它发生时,我发现它是没有额外工作的更好选择。