假设文件和您的文件是旧的后代。

file_mine =

abc
def
ghi

file_old =

abc
jkl
ghi

file_yours =

abc
def
ghi

命令 diff3 -m MIND OLD YOURS 给:

abc
<<<<<<< OLD
jkl
=======
def
>>>>>>> YOURS
ghi

Diff3无法解决该矿山和您的相同更改。

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

为此挠痒痒:

diff OLD MINDdiff OLD YOURS 其产出中有相同的大块头。

2c2
< jkl
---
> def

在三向合并期间,这些帅哥是否应该不“取消”?

有帮助吗?

解决方案

您期望拥有什么?

作为 描述diff3实用程序的文章 说:

...这个(合并) 未能是真实的 当所有三个输入文件都不同或 当只有较旧的不同时;我们称之为 冲突. 。当所有三个输入文件都不同时,我们将冲突称为 重叠

因此,您描述的案件被视为冲突。 '为什么这样?'你可能会问。由于diff3算法。描述您可以在同一页面上找到:

您可以将此(合并)视为减法 年龄较大你的 并将结果添加到 , ,或合并到我的变化中,会变老成您的变化

它无法正确解决差异,因为它没有正确的更改的适当背景。

如果您要说应该使用其他方法来工作,我会同意您的看法。但是它就是这样啊。 DIFF3并不完美,如果您想正确执行此操作,我建议使用其他工具 文章

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top