什么是最好的三向合并工具?

时间:2009-02-21 04:03:42

标签: version-control merge dvcs

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

您使用什么工具? Windows,Mac OS X,Linux,免费或商业,您可以命名。

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

(我知道这有点像Best Diff Tool,但它的不同之处在于我明确专注于三向合并工具;例如WinMerge不在列表中。)

13 个答案:

答案 0 :(得分:158)

KDiff3 开源,跨平台

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

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

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

enter image description here

答案 1 :(得分:104)

刚检出 P4merge ,因为我在另一篇博客文章中听说过:

enter image description here

非常流畅的界面,免费!我一直是忠实的Araxis Merge用户,但考虑到这是免费且令人敬畏的,我建议您查看它。

答案 2 :(得分:93)

Beyond Compare 3 Pro支持three-way merging,这是一个非常令人印象深刻的合并工具。它是商业的(但值得一提,恕我直言),可在Windows,Linux和Mac OS X上使用。

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

Enter image description here

注意:如果没有合并集,即合并驻留在目标文件中的标记,Beyond Compare不提供三向文件比较/编辑。超越比较says that feature is on their list

注意:3向合并是仅限Beyond Compare 3专业版的一项功能

答案 3 :(得分:73)

Meld Diff Viewer

我和Meld一起工作的经验很丰富。当我必须在分支之间进行混乱的代码合并时,我会使用它。它使用简单,界面干净。

     
  • 开源
  •  
  • 支持Linux,Windows和MacOS
  •  
  • 多个文件差异
  •  
  • 三方比较支持

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

enter image description here

答案 4 :(得分:42)

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

enter image description here

答案 5 :(得分:37)

Source Gear Diff Merge

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

enter image description here

答案 6 :(得分:31)

Araxis Merge。它是商业性的,但它非常值得......它适用于Windows和Mac OS X.

Enter image description here

答案 7 :(得分:27)

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

即使subversion指示冲突,Kdiff3也会自动解决。 Windows和Linux的版本具有相同的界面。可以将它与Tortoise和你的linux shell集成。

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

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

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

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

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

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

答案 8 :(得分:13)

我爱Ediff。它内置GNU Emacs

要进行三向差异,请使用ediff-files3(用于选择三个文件)或ediff-buffer3(用于选择三个已打开的缓冲区)。你会得到一个这样的屏幕:

three-way diff in emacs

注意字差异高亮。

您可以点击np转到下一个/上一个差异,而ab会将区域从缓冲区a(最左边的一个)复制到缓冲区b(中间)一个),以及abc的其他双字母组合; rb将恢复缓冲区b中的区域。点击?获取快速帮助菜单,或read the fine manual on diff3 merging in Emacs

答案 9 :(得分:11)

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

enter image description here

答案 10 :(得分:10)

Ultracompare。它非常好,处理大文件(超过1 GB),适用于Windows / Mac / Linux,并且它是商业的,但它是值得的。

Screen shot of UltraCompare Professional on Windows

答案 11 :(得分:6)

xxdiff如果你在Linux的土地上。

Enter image description here

答案 12 :(得分:3)

我前后写了一些可能有用的合并工具评论:http://www.misuse.org/science/2007/02/24/3-way-merging/

总结是我发现ECMerge是一款出色的商用产品。 http://www.elliecomputing.com/products/merge_overview.asp

enter image description here

我同意MrTelly的说法,Ultracompare非常好。一个很好的功能是它将比较RTF和Word文档,当你最终与销售人员进行单词编程并且他们没有正确管理他们的文档时,这很方便。