Linux下的图形化DIFF程序

239

我非常喜欢 Araxis Merge,它是一款用于PC的图形化DIFF程序。但我不知道在Linux上有什么可用的工具。我们的z800主机运行的是SUSE Linux。 如果能得到其他人喜欢使用的程序的一些提示,我将不胜感激。


3
没有人提到tkdiff。惊喜!与meld相比,它运行速度非常快。 - Ninad
2
抱歉,但这个问题非常有建设性。虽然它可能被归类为离题。 - lrleon
这里也很有帮助。我认为“由...专业知识支持...” - nate
这里提到的Linux可视化差异工具远不止这些,而且Windows工具通过Wine也能很好地运行。然而,我尝试过的所有Linux可视化差异工具在比较大文件时都非常缓慢 - 大约需要30秒以上,而Windows工具只需要1秒钟。Diffuse是Linux上最好的可视化差异工具 - Dan Dascalescu
13个回答

244

我知道两个图形化差异比较程序:MeldKDiff3。我没有使用过 KDiff3,但对我来说 Meld 工作得很好。

似乎它们都在 openSUSE 11.0 的标准软件包存储库中。


21
我发现 Meld 也非常强大,但在处理非常大的文件时会有些缓慢。 - stephen mulcahy
2
我喜欢Meld的Subversion集成。如果你打开当前文件夹,你会看到自最后一次提交以来发生变化的文件清单。非常实用。 - Alexis Wilke
4
对于Meld我给出+1的评价——非常棒。绝对是我使用过的GUI diff应用程序中最易读的之一,设计非常精致。 - btongeorge
1
如果逐行比较,Meld是不错的选择。但是,如果您对文件进行了更多的更改,Meld就无法正确地找到这些更改。我认为BeyondCompare比Meld更好。 - Mesut Tasci
1
Meld拒绝对任何具有单个字节的二进制数据进行差异比较。对于我尝试进行差异比较的PDF文件毫无用处。 - mjaggard
如果没有文件怎么办?我只想从剪贴板复制文本。它们都不支持这个。它们只需要文件。 - ar2015

49
如果您使用Vim,可以使用内置的差异(diff)功能。 vim -d file1 file2 可以直接进入差异屏幕,在那里您可以执行各种合并和删除操作。

1
使用编辑器进行文件'差异比较'的主要优点是可以直接在原文件中手动编辑。此外,VIM自动差异折叠功能能够让你仅查看不同之处,并且只在需要时展开隐藏代码。 - nimrodm
1
我经常使用这个功能,虽然在Meld中合并要容易得多,因为你通常只需点击其中一个箭头就可以了。 - Alexis Wilke
1
在我看来,这是最好的答案。谢谢您先生。+1 为使用 Vim 的解决方案。 - rana

44

BeyondCompare 的 Linux 版本也已经发布。

虽然不是免费的,但 Windows 版本值得每一分钱 - 我想 Linux 版本也是如此。


10
我认为BeyondCompare非常出色,比我曾使用过的所有集成版本控制差异工具、IDE打包或操作系统标准差异工具都要好。+1 - davenpcj
1
这是一个很棒的Windows应用程序,我从未在Linux上使用过它。 - Daniel Kivatinos
3
BeyondCompare 在 Linux 平台上表现良好,我个人认为其比 Meld 更胜一筹。 - tonylo
如果文件只有一些更改,Meld很好用,但似乎很容易混淆,所以我尝试了BeyondCompare。在这种情况下,对我而言它并没有做得更好,我更喜欢Meld的界面。 - tempcke
在Linux上尝试使用BeyondCompare时出现了奇怪的行为。它会显示冲突,即使它本身可以解决这些冲突。同时,应用更改也很奇怪。下面的面板与上面的面板不同步。 - mhstnsc

30

Diffuse 也非常好。 它甚至让你可以轻松地调整行匹配方式, 通过定义匹配点。


1
能够手动调整匹配点是一个非常棒的功能! - Sk606
3
我刚试了一下Diffuse,在一个文件中,一个代码块被移动到了if语句里面,它给出的比Meld更加合理的比较结果(+1)。然而,你无法把Diffuse指向两个目录,只能针对文件进行比较(-1)。 - w00t
据我所知,除了vimdiff之外,唯一可以合并/比较无限数量文件的工具是kdiff3,但其最多只能处理4个文件。 - hoijui

18

Emacs自带Ediff工具。

这里是Ediff的界面展示 EdiffScreenshot


ediff很棒,而且与emacs的集成非常不错。 - Alex Recarey
13
设置Emacs让它符合个人喜好相当困难,默认界面看起来像一棵圣诞树,不太直观。这是一位Emacs狂热者的评论。 - blais
如果有人不喜欢默认的 ediff 设置,请按照以下方式更改:(setq ediff-window-setup-function 'ediff-setup-windows-plain) ;; 将窗口并排放置 (setq ediff-split-window-function (quote split-window-horizontally))``` [来源](http://pragmaticemacs.com/emacs/visualise-and-copy-differences-between-files/) - azzamsa

14

MeldKDiff是最受欢迎的两个工具。


6

xxdiff 是一款轻量级的工具,如果您需要的话。


4
xxdiff还配备了用于代码审查的功能,并从头开始构建以便与脚本集成(例如,“决策模式”及其附带的Python库,其中包含许多自动调用的示例)。由于它是用C语言编写的,因此它非常轻巧,运行速度很快,并且不依赖于桌面环境(仅针对Qt编写)。 - blais

4

我曾经使用过Meld,它看起来非常不错,我可能会更经常地使用它。如果你熟悉vim的话,vimdiff也很好用。最后我想提到的是,我发现xxdiff在快速比较方面做得还不错。有许多差异程序可以很好地完成工作。


3

Kompare 适合进行文件比较,但我使用 dirdiff。虽然它看起来不太好看,但dirdiff可以进行三方合并 - 而且你可以在工具内完成所有操作(包括比较和合并)。


1

SourceGear的DiffMerge。它非常不错。Araxis Merge是我从Windows想念的程序之一。我想知道它在Wine下是否可用;)也许得试试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接