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

你用什么工具?Windows, Mac OS X, Linux,免费或商业,你能想到的。

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

KDiff3 DiffMerge P4Merge 融合 Beyond Compare Pro。

(我承认这有点像最佳差异工具,但它的不同之处在于我明确地专注于三方合并工具;例如,WinMerge就不在此列。)


当前回答

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

其他回答

源齿轮差合并:

跨平台,真正的三方合并,它是完全免费的商业或个人使用。

Kdiff3冲突解决算法真的令人印象深刻,它很好地集成了Git。

我建议将它配置为Git mergetool,或者使用一个不错的Git前端作为GitExtensions。

即使Git/Subversion提示有冲突,Kdiff3也会自动解决。Windows和Linux都有相同界面的版本。可以将它与Tortoise和linux shell集成在一起。附注:您还可以尝试Git合并策略

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

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

合并的文件是可编辑的,因此可以在合并冲突后进行微调。有流畅的键盘快捷键。

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

一个高级特性是使用正则表达式定义自动合并。

我唯一的烦恼是,如果它不在您最喜欢的发行版存储库中,那么编译起来有点困难。

vimdiff。太棒了。你只需要一扇三英尺宽的窗户。

我爱Ediff。它内置在GNU Emacs中。

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

注意单词差异突出显示。

你可以按n或p转到下一个/上一个差分,而ab会将区域从缓冲区a(最左边的那个)复制到缓冲区b(中间的那个),类似地,其他两个字母的组合a, b, c;rb将恢复缓冲区b中的区域。命中?获取快速帮助菜单,或阅读Emacs中diff3合并的精细手册。

xxdiff如果你在Linux领域。