299

Subversion、Git、Mercurial 和其他支持三向合并(结合我的、他们的和“基本”修订版)并支持图形工具来解决冲突。

你用什么工具?Windows、Mac OS X、Linux,免费或商业,应有尽有。

以下是我使用或听说过的一些,只是为了开始对话:

(我认识到这有点像Best Diff Tool,但不同之处在于我明确关注三向合并工具;例如, WinMerge不在列表中。)

4

13 回答 13

180

KDiff3 开源,跨平台

Linux 和 Windows 界面相同,非常智能的冲突解决算法,自动解决冲突的正则表达式,与 ClearCase、SVN、Git、MS Visual Studio 集成,可编辑合并文件,比较目录

它的键盘导航很棒:ctrl-arrows 导航差异,ctrl-1、2、3 进行合并。

另请参阅https://stackoverflow.com/a/2434482/42473

在此处输入图像描述

于 2009-10-20T08:08:59.550 回答
110

刚刚查看了P4merge,因为我在另一篇博客文章中听说过它:

在此处输入图像描述

非常流畅的界面,而且免费!我一直是 Araxis Merge 的忠实用户,但考虑到这是免费且很棒的,我鼓励您检查一下。

于 2009-05-12T23:26:23.977 回答
100

Beyond Compare 3 Pro支持三向合并,是一款相当不错的合并工具。它是商业的(但值得,恕我直言),可在 Windows、Linux 和 Mac OS X 上使用。

正如评论中指出的那样,它也很便宜。

在此处输入图像描述

注意:如果没有合并集,即目标文件中的合并标记,Beyond Compare 不提供三向文件比较/编辑。Beyond Compare表示该功能在他们的列表中

注意:3 路合并是 Beyond Compare 3 专业版中的一项功能

于 2009-02-21T04:06:18.397 回答
83

融合差异查看器

我只有与 Meld 合作的好经历。当我必须在分支之间进行杂乱的代码合并时,我会使用它。它使用简单,界面简洁。

  • 开源
  • 支持 Linux、Windows 和 MacOS
  • 多文件差异
  • 三向比较支持

在 Ubuntu 中,安装非常简单:sudo apt-get install meld

在此处输入图像描述

于 2009-02-21T05:20:45.817 回答
51

vimdiff。这很棒。你所需要的只是一个三英尺宽的窗户。

在此处输入图像描述

于 2009-02-21T04:09:33.163 回答
37

源齿轮差异合并

跨平台、真正的三向合并,完全免费用于商业或个人用途。

在此处输入图像描述

于 2009-02-21T04:45:08.053 回答
33

Araxis 合并。它是商业的,但它非常值得……它适用于 Windows 和 Mac OS X。

在此处输入图像描述

于 2009-02-21T06:41:06.653 回答
32

Kdiff3 冲突解决算法确实令人印象深刻。

即使颠覆表明存在冲突,Kdiff3 也会自动解决它。有相同界面的 Windows 和 Linux 版本。可以将它与 Tortoise 和你的 linux shell 集成。

它在我最喜欢的开源软件列表中。我在任何机器上安装的首批工具之一。

您可以将其配置为 Subversion、Git、Mercurial 和 ClearCase 中的默认差异工具。它还解决了几乎所有的 ClearCase 冲突。在 Windows 中,它与 Windows 资源管理器有很好的集成:选择两个文件并右键单击以比较它们,或者右键单击“保存到以后”一个文件,然后选择另一个进行比较。

合并后的文件是可编辑的。有流畅的键盘快捷键。

您还可以使用它比较和合并目录。看: Kdiff3 比较目录

一个高级功能是使用正则表达式来定义自动合并。

我唯一的烦恼是,如果你最喜欢的发行版存储库中没有它,编译起来会有点困难。

于 2010-03-12T17:17:41.560 回答
13

超比较。真的很好,可以很好地处理大文件(超过 1 GB),适用于 Windows/Mac/Linux,而且它是商业的,但它是值得的。

Windows 上 UltraCompare Professional 的屏幕截图

于 2009-02-21T04:06:26.337 回答
13

爱埃迪夫。它内置于GNU Emacs中。

要进行三向比较,请使用ediff-files3(用于选择三个文件)或ediff-buffer3(用于选择三个已打开的缓冲区)。您将看到如下所示的屏幕:

emacs中的三向差异

注意单词差异突出显示。

您可以点击np转到下一个/上一个差异,同时ab将区域从缓冲区 a(最左边的一个)复制到缓冲区 b(中间的一个),对于 , , 的其他两个字母组合a也是b如此crb将恢复缓冲区 b 中的区域。点击?快速帮助菜单,或阅读 Emacs 中 diff3 合并的精美手册

于 2009-02-21T05:51:22.090 回答
12

Diffuse是一个易于使用的三向合并工具。它支持您提到的所有平台和版本控制系统,并且可以同时比较三个以上的文件。

在此处输入图像描述

于 2009-02-25T01:50:33.183 回答
6

xxdiff如果你在 Linux 领域。

在此处输入图像描述

于 2009-02-21T04:32:09.007 回答
4

总结是我发现 ECMerge 是一个很棒的商业产品。http://www.elliecomputing.com/products/merge_overview.asp

在此处输入图像描述

我也同意 MrTelly 的观点,即 Ultracompare 非常好。一个不错的功能是它会比较 RTF 和 Word 文档,当您最终与销售人员进行 Word 编程并且他们没有正确管理他们的文档时,这很方便。

于 2011-04-22T01:18:58.097 回答