Perforce逐行合并

问题描述

我正在尝试熟悉P4,以解决合并冲突。假设User1和User2从主线获得了开发流,并且它们都在同一个文件上工作:User1首先写入“字符串1”,然后提交更改并将其复制到main。 User2获取文件,并添加新字符串“另一个字符串”。 User2不提交。 User1将“字符串1”更改为“字符串2”,然后再次提交更改。

User2尝试提交更改,但由于第一行冲突而无法复制到main。因此,尝试使用3向合并工具进行合并时,请不要让User2逐行选择内容。这是正常现象吗?唯一的解决方案似乎接受User2解决方案,并手动编辑第一行以将“ 1”更改为“ 2”。我不确定为什么为什么不可能,因为User2仍然有旧的“字符串1”,而这与添加的新行无关。

解决方法

假设在“字符串1”之后立即添加了“另一个字符串”,则冲突解决如下所示(在命令行中):

>>>> ORIGINAL //depot/merge/same_file.txt#2
string 1
==== THEIRS //depot/merge/same_file.txt#3
string 2
==== YOURS //Samwise-dvcs-1509687817/merge/same_file.txt
string 1
another string
<<<<

用户1的更改为“ THEIRS”,而用户2(进行合并的用户)为“ YOURS”。由于更改彼此相邻,因此将它们分组为单个“块”-“ THEIRS”分支中不再存在“ string 1”,因此对于合并算法而言,“ string 2”将不会很明显相对于“另一个字符串”。