Clearcase 如何将同时创建的两个分支从main合并回main而不产生冲突
在本例中,通常如何处理从“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” 如何处理这些类型的更改,以便在从主“主干”并行创建分支时,更改不会从一个合并反向到下一个合并 任何信息都将不胜感激。 多谢各位 当“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
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]
============