Merge GNU diff3(三向合并)给出了意外的结果

Merge GNU diff3(三向合并)给出了意外的结果,merge,gnu,diff3,Merge,Gnu,Diff3,假设我的和你的文件是旧文件的后代 档案室= abc def ghi diff3无法解决我的和你的更改相同的问题 为什么??还有,有没有办法解决这个问题 用这句话逗你的大脑发痒: diff-OLD-MIND和diff-OLD-YOURS在输出中有相同的块头 2c2 < jkl --- > def 2c2 def 在三方合并过程中,这些大块头不应该“取消”吗?你希望得到什么 正如政府所说: 。。。当三个输入文件都不同时,此(合并)将不为真;当只有较旧的文件不同时,此(合并)将不为真;我们称之为

假设我的和你的文件是旧文件的后代

档案室=

abc def ghi diff3无法解决我的和你的更改相同的问题

为什么??还有,有没有办法解决这个问题

用这句话逗你的大脑发痒:

diff-OLD-MIND
diff-OLD-YOURS
在输出中有相同的块头

2c2 < jkl --- > def 2c2 def
在三方合并过程中,这些大块头不应该“取消”吗?

你希望得到什么

正如政府所说:

。。。当三个输入文件都不同时,此(合并)将不为真;当只有较旧的文件不同时,此(合并)将不为真;我们称之为冲突。当三个输入文件都不同时,我们称冲突为重叠

因此,您描述的案例被视为冲突。”“为什么会这样?”你可能会问。因为diff3算法。说明您可以在同一页找到:

您可以将此(合并)视为从您的更改中减去较旧的更改,然后将结果添加到我的更改中,或者将会变旧的更改合并到我的更改中

它无法正确解决差异,因为它没有进行更改的适当上下文

如果你想说它应该使用其他方法工作,我会同意你的看法。但是事实就是这样。diff3并不完美,如果您想按照中的描述正确地完成它,我建议您使用其他工具

abc def ghi abc <<<<<<< OLD jkl ======= def >>>>>>> YOURS ghi 2c2 < jkl --- > def