GNU diff3(三向合并)给出了意想不到的结果

假设文件MINE和YOURS是OLD的后代。 FILE_MINE = ABC 高清 GHI FILE_OLD = ABC JKL GHI FILE_YOURS = ABC 高清 GHI 命令
diff3 -m MIND OLD YOURS
给出: ABC <<<<<<<旧 JKL ======= 高清 >>>>>>>你的 GHI diff3无法解析MINE和YOURS进行相同的更改。 为什么?而且,有没有办法解决这个问题? 用这个搔痒你的大脑:
diff OLD MIND
diff OLD YOURS
在他们的输出中有相同的暗淡。 2C2 < JKL --- > def 这些帅哥是否应该在三方合并期间“取消”?     
已邀请:
你期望得到什么? 正如描述diff3实用程序的文章所说:   ...当所有三个输入文件不同或只有旧版本不同时,此(合并)不成立;我们称之为冲突。当所有三个输入文件不同时,我们将冲突称为重叠 因此,您描述的案例被视为冲突。 '为什么这样?'你可能会问。因为diff3算法。您可以在同一页面上找到描述:   您可以将此(合并)视为从您的中减去旧的并将结果添加到我的中,或者将我的更改转化为您的更改 它无法正确解决差异,因为它没有正确的更改上下文。 如果你要说它应该使用其他方法,我会同意你的意见。但是它就是这样啊。 diff3并不完美,如果你想按照文章中的描述做正确的话,我建议使用其他工具     

要回复问题请先登录注册