33

在 Meld 中有一个选项可用于添加同步点。不幸的是,我无法弄清楚这些所谓的同步点是做什么的。我已经搞砸了,但它实际上似乎没有做任何事情(除了打破实时比较)。

我检查了手册并四处搜索,但未能解开这个谜团。

该选项在编辑菜单和上下文菜单中可用:

编辑菜单中的同步点 上下文菜单中的同步点

4

3 回答 3

19

目的是用户能够在每个被比较的文件中设置点,这些点应该匹配。这有助于代码匹配算法在差异很复杂的情况下确定两个文件如何相互关联。

我仍在通过反复试验来解决这个问题,在一个文件中设置一个点,然后在另一个文件中设置一个匹配点。它没有我希望的那么好。我已经让同步点进入不匹配状态。但它确实让事情明显好转。

于 2014-02-11T22:37:33.680 回答
15

以下是如何在 Meld 中使用同步点:

  1. 找到两条应该匹配但被 Meld 视为完全不同的行
  2. 右键单击左侧,单击“添加同步点”
  3. 右击右边的,点击“添加同步点”
  4. 就是这样!现在 Meld 将两条线显示在同一级别。
  5. 您可以添加更多同步对,或清除所有同步对。

例子

在下面的屏幕截图中,您可以看到“GetSyncItemFromRemotePath”部分在左右之间非常相似,但 Meld 看不到这一点。所以我在左边插入一个同步点,如下所示:

在此处输入图像描述

...然后我在右侧的“GetSyncItemFromRemotePath”上添加另一个同步点。

结果如下:

在此处输入图像描述

它可以更容易地发现真正的差异,在这种情况下是 MIME 类型。

于 2018-06-12T05:26:47.597 回答
6

正如其他人所提到的,同步点是一种修复差异算法的方法,并在它自己感到困惑时告诉它什么匹配什么。

使用它们的关键是左键单击一行,然后右键单击并从弹出菜单或主菜单中选择添加同步点。完整的解决方案是:

  1. 找到两条应该同步但不同步的行。
  2. 左键单击左窗格中的行。
  3. 右键单击同一位置并选择添加同步点。
  4. 左键单击右窗格中的行。
  5. 右键单击同一位置并选择添加同步点。

这样做后,我可以在它中断的位置调整差异,从而更快地验证我的更改。当它只断几行时,很好,当它断几屏时,没有这样的功能比较变得乏味。

下面显示了一个混淆了else关键字的融合差异。左侧的块与新default:块进行比较。(点击图片放大)

在此处输入图像描述

首先,我左键单击左侧面板中的 else,然后右键单击 +“添加同步点”。

接下来,我左键单击else右侧面板中的 ,然后再次右键单击 +“添加同步点”。

结果现在是正确的:

在此处输入图像描述

现在我可以看到,当我将对象向量更改为指向对象的共享指针向量时,只是.更改了。->

请注意,Meld 在同步位置添加了一条黑线。这样可以更轻松地查看您添加同步点的位置。

于 2018-08-19T06:15:47.613 回答