Clearcase 如何将同时创建的两个分支从main合并回main而不产生冲突

Clearcase 如何将同时创建的两个分支从main合并回main而不产生冲突,clearcase,Clearcase,在本例中,通常如何处理从“windows”和“test”分支返回“main”的合并(红线) 例如,“windows”分支下的开发人员通过设置a=1修复了一个bug,然后在“windows”下测试修复并将其称为“完成”,因此他将“windows”合并回“main”作为“main/8”,这到目前为止还不是问题 但是,假设“测试”分支下的开发人员将A更改为“A=0”,以修复他正在处理的bug 当“test/4”合并回“main”时会发生什么 现在“main/9”显示“A=0”,覆盖“windows/1

在本例中,通常如何处理从“windows”和“test”分支返回“main”的合并(红线)

例如,“windows”分支下的开发人员通过设置a=1修复了一个bug,然后在“windows”下测试修复并将其称为“完成”,因此他将“windows”合并回“main”作为“main/8”,这到目前为止还不是问题

但是,假设“测试”分支下的开发人员将A更改为“A=0”,以修复他正在处理的bug

当“test/4”合并回“main”时会发生什么

现在“main/9”显示“A=0”,覆盖“windows/1”所做的修复

然后说,在“windows”下处理修复程序的开发人员现在需要处理另一个修复程序并创建“windows_2”。他会认为A仍然是“A=1”,因为他就是这样离开的。开发人员可能会经历一个痛苦的过程来发现现在的“a=0”

如何处理这些类型的更改,以便在从主“主干”并行创建分支时,更改不会从一个合并反向到下一个合并

任何信息都将不胜感激。 多谢各位

当“
test/4
”合并回“main”时会发生什么

这是一个非常重要的合并,因为“
a=
”的*相同*行与公共祖先相比已经修改了两次。这是合并过程中的明显冲突,不会自动发生冲突

因此,合并回
test
分支的开发人员必须在
test
windows
行之间进行选择,并且希望能够与
windows
分支的开发人员进行核对

从:

当两个或多个参与者与基本参与者不同时,Diff Merge会检测冲突,并提示您解决冲突。它显示所有参与者差异,您可以接受或拒绝每个差异


但真正的答案是沟通:如果同一个文件需要修改(特别是在同一行中),那么应该有某种方法来管理和协调这些类型的开发工作


ClearCase还建议在签出时锁定(
cleartool签出-保留
),这将阻止在签出
windows
版本时签出
test
。这也会提示
测试的开发人员与他/她的同事进行检查,并了解正在进行的修复的性质。

谢谢。我想我开始明白“合并地狱”这个词的由来了:=|
          [changed 10]            |          [changed to 10 file 2]---
A;                                | A=1;
                                 -|-
          [changed 10]            |          [changed to 10 file 3]---
A;                                | A=0
                                  |-
Do you want the CHANGE made in file 2? [yes] 
no  
Do you want the CHANGE made in file 3? [yes] 
yes
Applying CHANGE from file 3 [line 10]
============