Comments below.
有两个疑问,想请各位达人们帮忙解答。
1.CC的自动merge原理是怎么样的?
如果现在是这样,有两个branch,分别为branch1和branch2,branch1上有十个结点,branch2上有五个结点。现在要把branch2/5mergeg到branch1/10上,如果是CC自动merge的,那么就会取branch2/5上的最新的内容对吗?
现在工作上出现了一个问题,就是在某一段代码行内,branch2/5是空的,但现在不确定是不是有空行,branch1/10上是有内容的,最后merge完的结果输出的文件就是空的,这应该是正确的吧?
Comment>>自动merge成功,且取了branch2/5上的版本,说明branch2/5对于共同的基版本有修改(删除了code),而branch1/10对于共同基版本没有修改,所以取了branch2/5上的版本 生成 基于branch1/10的checkout版本。
如果反过来merge,是不是就会取branch1/10上的文件了?
Comment>>结果也一样这一段code会取branch2/5上的版本,如果这个文件在branch1/10上的其它处也没有修改,那么findmerge不到任何东西。但是如果这个文件在branch1/10上的其它处有修改,会生成基于branch2/5的checkout版本。
2.CC的自动merge规则我们自己可以做改动吗?就是把自己取branch2/5的这种方式改成取branch1/10的方式,当然这只是举的一个例子。
Comment>>如果是findmerge是不可以的,这违反同步原则。但你可以通过cleartool merge -ndata to file from branch2/LATEST来画一个箭头,告诉clearcase,我已经merge了branch2/LATEST,在branch1上仍保持10版本,不过多了一个branch2/5到branch1/10的hype link。这时你再从branch2/5上findmerge,就不会find到数据,因为clearcase认为你已经从branch2/5完成了归并
转载请注明源自
www.SCMLife.com,请保留版权. 本贴地址:
http://bbs.scmlife.com/viewthread.php?tid=10522