首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何理解diff3合并的条件是明确的?

我应该如何理解diff3合并的条件是明确的?
EN

Unix & Linux用户
提问于 2018-11-09 16:59:57
回答 2查看 130关注 0票数 0

散装手册

diff3,我的,我的,你的,你可以记住这些参数的顺序,因为它们是按字母顺序排列的。你可以认为这是把你的年龄从你的身上减去,然后把结果加到我的,或者把变老的变化合并到我的身上。这种合并是很好的定义,只要我的和老的匹配,在邻里的每这样的变化。如果所有三个输入文件都不同,或者只有较旧的输入文件不同,则这是不正确的;我们将此称为冲突。当三个输入文件完全不同时,我们将冲突称为重叠。..。‘-e’、‘-3’和‘-x’选项只选择未合并的更改,即在我的更改和您的更改不同的地方;它们忽略了从旧更改到您的更改(在我的更改和您的更改相同的地方),因为它们假设这些更改已经合并。

“我和更老的人在每一种变化的邻里匹配”意味着什么?

“什么时候只有年龄不同”是否意味着我和你的是相同的,但与老的不同?合并不是很简单吗,因为我们可以直接使用我的或者你的?为什么在这种情况下合并没有得到很好的定义呢?

这三个案件如何涵盖所有可能的案件:

  • 当“我和更老的人在邻里相配时,每一个这样的变化”
  • “当三个输入文件都不同时”
  • “什么时候只有年龄不同”?

“从老到你,在我和你的变化完全相同的情况下”是否与“只有年龄不同”的变化相同?

谢谢。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-11-09 17:17:43

“我和更老的人在每一种变化的邻里匹配”意味着什么?

“我的和老的匹配在每一个这样的变化的邻里”意味着当考虑到“老”和“你的”之间的每一个变化时,变化的背景也可以在“我的”中找到。换句话说,这意味着“我的”和“老的”对于“老”和“你的”之间的每个个体的变化都是相同的。考虑一下

代码语言:javascript
复制
mine            other           yours
------------------------------------------------
Some text       Some text       Some text
Some more text  Some more test  Changed text
Continues       Continues       Continues
Mine changes    This is gone    This is gone
The file ends   The file ends   The file ends

一句在“其他”和“我的”之间变了,另一句在“其他”和“你的”之间变了。当我们观察从“他人”到“你的”的变化时,我们发现“我的”中也有相同的语境,所以这种变化可以适用于“我的”,而不是含糊不清或冲突。

“什么时候只有年龄不同”是否意味着我和你的是相同的,但与老的不同?

是。

合并不是很简单吗,因为我们可以直接使用我的或者你的?为什么在这种情况下合并没有得到很好的定义呢?

“明确界定”的定义是,从“旧”到“你的”的变化在“我的”中是相同的。当“我的”和“你的”是相同的,并且区别于“老”的时候,那么从定义上来说,这种变化并没有得到很好的定义。

这似乎令人惊讶,但三方合并的指导原则是,任何冲突,即使导致相同的内容,都必须由用户识别和检查。我手头没有一个例子,但在“我的”和“您的”中,一个给定的行是相同的,但是考虑到正在合并的其他更改,这是不可取的,因为--在合并结果中。

考虑这一点的另一种方式是,三方合并的目的是调和两段不同的历史:从“老”到“我的”的历史和从“老”到“你的”的历史。即使这两个历史导致相同的内容,他们需要重新评估,而不是盲目应用。

diff3的开发人员确实意识到,这样的更改无论如何都应该应用;-e-3-x选项就是这样做的。

这三宗个案如何涵盖所有可能的个案?

第一个案例描述了一个全局分析,但我认为其他两个应该在一个变化的背景下理解。如果我们考虑每一个变化(从“老”到“您的”)查看的所有三个案例,它们就会变得不同(请记住“老”和“您的”是不同的):

  • “我的”和“老的”是相同的。
  • “我的”和“老的”是不同的,“我的”和“你的”是不同的。
  • “我的”和“老的”是不同的,“我的”和“你的”是相同的。

考虑一下真值表:

代码语言:javascript
复制
mine == older    mine == yours    older == yours    Case
--------------------------------------------------------
     Yes              Yes               Yes         N/A
     Yes              Yes               No          Imp.
     Yes              No                Yes         N/A
     Yes              No                No          1
     No               Yes               Yes         N/A
     No               Yes               No          3
     No               No                Yes         N/A
     No               No                No          2

N/A意味着没有考虑到这种情况:从“老年人”到“你的”并没有变化。小鬼。意味着这种情况是不可能的(通过平等的传递性)。这表明,三个案例足以涵盖所有可能性。

“从老到你,在我和你的变化完全相同的情况下”是否与“只有年龄不同”的变化相同?

是。

票数 3
EN

Unix & Linux用户

发布于 2018-11-09 17:19:18

它在每个mine中都有很好的定义,yours是一个与older不同的变化,因此它们删除文本;将文本添加到不同的位置;或者它们更改文本,但不同时更改相同的文本。

也就是说,如果我们都以不同的方式改变相同的事物,或者如果我们在同一个地方添加一些东西,那么它就不知道按什么顺序放置它们,计算机就不知道需要什么。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/480800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档