2010-04-12 335 views
4

自从它首次推出以来,我一直是UltraCompare Pro的用户,我认为它是一个功能非常全面的比较和合并工具。但是,由于我一直在深入研究DVCS,我发现它处理三路合并的方式与其他(大多数)其他工具不同。所以我想知道这是为什么,以及是否因为它而错过了某些东西。三路合并 - 不同的哲学?

在UltraCompare中,有三个合并面板(让我们称它们为基础,本地和其他)。所有合并操作都发生在这些面板中。实际上,这意味着我在中间窗格(本地)上进行工作,合并右侧(其他)或可能来自左侧(基础)上的共同祖先的更改。中间窗格在会话期间被修改,然后保存 - 并作为合并的结果提交。第四个窗格(输出窗口)仅包含有关diff结果的信息。

Screenshot UC http://www.ultraedit.com/assets/images/feature_map/uc/three_way_text.png

在其他工具,看来该三个窗格只存在于一个只读状态,并且所述第四,底部窗格(输出)是其中所有的合并发生的地方。有一个额外的合并窗口的原因是什么?跟踪所有变化更容易吗?或者是因为这样,因为每个人都一直这样做,所以我们正在复制这种行为?你对此有何看法?

Screenshot kdiff3 http://hginit.com/i/04-kdiff3-after.png

我不知道是否存在一个最佳的或正确的答案,所以我还没有作出这个问题CW,但我会听从你的意见在这里。

回答

6

对我来说似乎很简单,当您进行更改时,您可能很希望保持不变的“本地”版本可见。

original  local   other   merged 

       bar= foo+1 bar= foo+2  bof= foo+2 
              zot= foo+1 
...   ...   ...    ... 
print foo  print bar  print foo+1  print bar?? 

两个localother纷纷推出了新的变量bar。将第一次更改合并到bof/zot,去喝杯茶,回来并尝试合并print。等一下,localbar是什么?如果原来的local不在那里,那么这些信息就不存在了,而且你正在用另一个文本编辑器来查找发生了什么。

这是一个人为的例子,但这种事情可以很容易地发生的任何一套变化,你不能一直在你的脑海里,一气呵成。通常,3WM总是有两个可变元素,变化A和变化B.要重现所有信息,您需要四个视图来处理所有可能的排列:0(原始),ABAB(合并)。

+0

不看所有对我的设计。谢谢! – 2010-04-12 12:21:14

3

就我个人而言,我喜欢免费的perforce合并工具(p4merge)。它也有4个窗口 - 原始(分支之前)的中间,左侧为目标分支,右侧为源分支,底部为可编辑。

我比你的选择1更喜欢这一点,因为所有3个原始文件可能有重要的信息,可能会影响合并。

2

基本上有显示文件之间的差异两种方式:

  • 并排两个面板侧
  • 一个面板

图形:

aaa aaa 
bbb ··· 
··· ccc 
ddd ddd 

某些程序使用第一个程序(例如, WinMerge)和一些程序允许选择(例如TortoiseMerge或Google Project Hosting)。这可能是品味的问题,但我发现第二个更直观,当你想跟踪变化。但是,当您想要编辑更改时,您需要两个面板。

当做三路合并,不同的布局来自于此。超比较使用单面板方法来显示更改,以便您可以看到两个面板和第三个面板进行编辑。其他程序使用两种面板方式来显示更改,因此您可以使用三个面板加上第四个面板进行编辑。

同样,我相信这只是一个品味问题。

4

Project: Merge是我为XML编写的比较和合并工具。我研究了标准的4窗格方法,几乎​​立即将其丢弃为显示数据的非常浪费的方式。在上面的截图中充分证明了一点,几乎所有窗格都多次显示完全相同的数据。

因此,我开发了一种单窗格方法,用于显示所有输入文件并显示其中哪些文件有助于输出。 (或者在比较文件时区别在哪里)。虽然我没有允许对文本进行完全自由的表单编辑(主要是由于如何管理和引用XML节点),合并输出的某些部分可以或多或少地作为您编辑会在一个正规的文本编辑器。 (就导航而言,我的编辑器键盘快捷键紧跟在Visual Studio的键盘快捷键之后。)最值得注意的是字符数据,注释和属性值。您也可以完整地剪切和粘贴XML节点。 (但显然只为文本到外部应用程序)

下面的屏幕截图显示了三路与出现在“左”的文件大部分的改变,以及所选择的变化低于未决冲突合并:

alt text

+0

我真的很喜欢这个工具!绝对值得考虑! – pablo 2011-01-04 19:27:02