什么是"同步点"?

sie*_*z0r 24 meld

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

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

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

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

小智 16

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

我仍然通过反复试验来确定它,在一个文件中设置一个点然后在另一个文件中设置匹配点.它没有像我希望的那样好用; 我让同步点进入不匹配状态.但它确实使事情明显变得更好.

  • @ siebz0r只要在所有三个文件中设置同步点,我安装的1.8.5版本中的三路版本就可以运行.实时更新确实会中断,但是当您解决了正在处理的部分后,您可以删除同步点并继续(使用实时更新).实际上这个功能应该只使用Araxis的两个文件中的同步点,但它是免费的所以我想我没关系:) (4认同)
  • 使用双向比较似乎可行。使用三向比较,我无法使其正常工作。我会接受答案,因为我没有在问题中说明。 (2认同)
  • 使用Meld 3.16,我有与Joel相同的观察结果:有时同步点有帮助,但有时它们神秘地没有.天真的我会期望同步点将反映在锁定滚动期间线条的对齐方式(即,在滚动期间同步点将被严格连接),但不会发生类似情况. (2认同)

Ale*_*lke 6

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

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

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

这样做后,我可以调整差异的位置,否则它会中断,从而可以更快地验证我的更改。断了几行就好了,断了几屏的行,没有这样的功能比较起来就很乏味了。

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

在此处输入图片说明

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

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

结果现在是正确的:

在此处输入图片说明

现在我可以看到,只是.用改变->为我改变物体的向量共享指针的对象的向量。

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


Nic*_*oul 5

这是在Meld中使用同步点的方法:

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

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

在此处输入图片说明

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

结果如下:

在此处输入图片说明

它使发现真正的区别(在本例中为MIME类型)更加容易。