Subversion,Git,Mercurial和其他人支持三方合并(结合我的,他们的和"基础"修订版)并支持解决冲突的图形工具.
你用什么工具?Windows,Mac OS X,Linux,免费或商业,您可以命名.
以下是我用过或听过的一些内容,只是为了开始对话:
KDiff3
DiffMerge
P4Merge
合并
超越比较专业版.
(我知道这有点像最好的差异工具,但它的不同之处在于我明确专注于三向合并工具; 例如,WinMerge不在列表中.)
1> sotto..:
KDiff3
开源,跨平台
适用于Linux和Windows的相同界面,用于解决冲突的非常智能算法,用于自动解决冲突的正则表达式,与ClearCase,SVN,Git,MS Visual Studio集成,可编辑合并文件,比较目录
它的键盘导航很棒:ctrl-arrows导航差异,ctrl-1,2,3进行合并.
另请参阅/sf/ask/17360801/
KDiff3的更多优点:适用于Linux和Windows的相同界面,用于解决冲突的非常智能的算法,用于自动解决冲突的正则表达式,与ClearCase,SVN和Git集成,可编辑的合并文件,比较目录.
@ThomasS这不是真的,请参阅[其他`kdiff3`答案](http://stackoverflow.com/a/2434482/42473)作为示例.`kdiff3`会愉快地区分和合并整个目录树,并且已经做了很多年!某些工具(例如`git`)可能只能按文件启动它,但其他工具(如mercurial)将很乐意允许您进行三向差异/合并整个存储库.
2016年有没有人对这个答案有意见?
它自2014年以来不受支持
当局部和其他变化的线数增加时,KDiff3很糟糕; 如果在本地你添加了行A,B和C,但另一个更改只添加了A和C,那么KDiff3计算出添加了A,然后发现B与C冲突,然后无论如何都添加C.
2> Dan Esparza..:
刚刚检查了P4merge,因为我在另一篇博客文章中听说过:
非常光滑的界面,免费!我一直是忠实的Araxis Merge用户,但考虑到这是免费且非常棒的,我建议您查看一下.
@Art:当然你可以在P4Merge中编辑合并结果.我一直这样做!
@ DH4我刚收到Perforce官方支持的电子邮件,P4Merge**免费用于商业用途**(我为MS工作,它没有比这更多的企业;))
它适用于Windows,Mac,Linux,FreeBSD和Solaris 10
p4merge也不是企业的"免费".许可证仅限商业用途.
我认为你不能在P4Merge中编辑合并结果,这是一个很大的缺点
P4merge中没有文件夹比较支持.这对P4Merge来说是一个非常好的补充.
git integration:git config --global merge.tool p4merge; git config --global mergetool.p4merge.cmd"p4merge $ BASE $ LOCAL $ REMOTE $ MERGED".(假设p4merge.exe在你的路径中.添加-dw选项以忽略空格.)
3> Joshua McKin..:
超越比较3 Pro支持三向合并,它是一个非常令人印象深刻的合并工具.它是商业的(但值得一提,恕我直言),可在Windows,Linux和Mac OS X上使用.
正如评论中指出的那样,它也很便宜.
注意:如果没有合并集,即合并驻留在目标文件中的标记,Beyond Compare不提供三向文件比较/编辑.Beyond Compare 表示该功能已列入其名单.
注意:3向合并仅是Beyond Compare 3专业版中的一项功能
+1 Beyond Compare很容易付出代价,特别是当你考虑它的其他功能时.
迈克尔,我不确定你的意思.Beyond Compare对差异化文件夹提供了很大的支持:http://www.scootersoftware.com/moreinfo.php.
它在[他们的网站](http://www.scootersoftware.com/moreinfo.php?zz=newfeatures)上清楚地显示 - 状态专业版的更新答案是3向合并的要求
很好,但不支持选择文件夹
Beyond Compare 4 Pro添加了文件夹合并支持.
4> Elijah..:
Meld Diff Viewer
我和Meld一起工作的经验很丰富.当我必须在分支之间进行混乱的代码合并时,我会使用它.它使用简单,界面干净.
开源
Linux,Windows和MacOS支持
多个文件差异
三向比较支持
在Ubuntu中,安装非常简单: sudo apt-get install meld
不幸的是,Meld是*NOT*三向合并工具(即使他们在主页上说明了这一点).对于三向合并,您需要_FOUR_windows(基本文件).但我喜欢融合,工作得很好.
Meld有缺陷,其视觉线索具有误导性.
@lzap,实际上是meld*是*三向,但它没有记录,大约一个月前我注意到他们完全删除了3向合并:http://is.gd/prKX5d如果你坚持使用旧版本足够的版本你仍然很幸运.
Meld甚至没有正确使用git.
+1 Meld是光滑,干净,"足够"的软件.
5> Paul Becking..:
Vimdiff可以.这很棒.你需要的只是一个三英尺宽的窗户.
花了一些时间弄清楚你可以做"gvimdiff -O branch1.txt base.txt branch2.txt merge.txt"并使用ctrl + w J将合并缓冲区移动到屏幕的底部.这是你如何使用它?
downvote,它并没有真正解决冲突,它只是差异.
@piotr vimdiff确实解决了冲突.您可以使用命令"diffg
"在底部窗格中构建合并文件.buttom合并窗格是缓冲区1,其他窗格是顶部的2,3,4.要跳转到差异,请使用[c和] c.这是debian wheezy 7.7的开箱即用功能.
vimdiff现在有很好的git处理三向合并(即4个窗格) - http://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetool#Vimdiff_for_three-way_merges
6> CMS..:
Source Gear Diff Merge:
跨平台,真正的三向合并,完全免费用于商业或个人用途.
@erkfel,这是不正确的.注册是可选的,软件可以免费使用:"SourceGear DiffMerge是一个屡获殊荣的文件差异和合并工具,自2007年以来一直在帮助专业开发人员和业余爱好者.SourceGear DiffMerge被许可免费使用.但是,通过注册DiffMerge您将为新产品开发,维护和支持提供资金.作为感谢我们注册用户和鼓励其他注册的一种方式,我们在4.2中添加了一些新功能......"(在程序文本中)
7> 小智..:
Araxis Merge.这是商业化的,但它非常值得......它适用于Windows和Mac OS X.
在使用Araxis很长一段时间之后,我的公司已经切换到KDiff3,原因如下:(1)当Araxis中的合并被取消时,文件仍然在TortoiseHg中被标记为已解决.(2)Araxis在"合并结果"窗格中显示基本修订和合并结果的混合,这经常令人困惑.(3)如果可以的话,从TortoiseHg KDiff3将自动合并而无需用户交互.(4)KDiff3的合并算法似乎做得更好.但是我们仍然使用Araxis作为我们的比较工具:)
同意,这是我用过的最好的.
Araxis为+1.我愿意付出很多钱供个人使用的少数工具之一.其他一切都混乱,混乱,相形见绌(双关语).
8> neves..:
Kdiff3冲突解决算法确实令人印象深刻.
即使颠覆表明存在冲突,Kdiff3也会自动解决.Windows和Linux的版本具有相同的界面.可以将它与Tortoise和你的linux shell集成.
它位于我最喜欢的开源软件列表中.我在任何机器上安装的第一个工具之一.
您可以将其配置为Subversion,Git,Mercurial和ClearCase中的默认差异工具.它还解决了几乎所有的ClearCase冲突.在Windows中,它与Windows资源管理器有很好的集成:选择两个文件并右键单击以进行比较,或者右键单击"保存到以后"文件,然后选择另一个进行比较.
合并的文件是可编辑的.有光滑的键盘快捷键.
您还可以使用它比较和合并目录.看到:
高级功能是使用正则表达式来定义自动合并.
我唯一的烦恼是,如果你喜欢的发行版存储库中没有它,那么编译有点困难.
我同意合并算法。它令人难以置信的复杂,似乎奇怪地以其他工具无法做到的方式“知道”您想做什么。它会定期粉碎diff3和Subversion(blarg),甚至可以对Git合并有所帮助。
9> jcrossley3..:
我爱Ediff.它是Emacs的标准配置.
尽管我喜欢ediff,但我看到上面只有两个缓冲区... 3路合并应该有3个或4个窗口:三个被合并(本地,远程及其共同的祖先基础),以及最终的合并输出.**似乎是ediff中的3向合并(称为"ediff-merge-with-ancestor"),但我不确定它是否有3个窗格或4个,而且上面的截图也没有反映出来.
10> MrTelly..:
Ultracompare.它非常好,处理大文件(超过1 GB),可用于Windows/Mac/Linux,并且它是商业的,但它是值得的.
11> 小智..:
Diffuse是一种易于使用的三向合并工具.它支持您提到的所有平台和版本控制系统,并且可以同时比较三个以上的文件.
它甚至支持同时比较N个文件!如果您需要比较来自许多同类应用程序的配置文件,这会派上用场.
12> Mark Harriso..:
xxdiff如果你在Linux的土地上.