命令行差异工具

7

有人可以推荐一个好的(最好是免费的)命令行diff工具吗?我需要从.Net启动它,以生成两个xml文件之间差异的某种文本文件。

谢谢!


我建议在问题的第二句中除了随意提到 .Net 之外,还应明确指出使用哪个平台。 - David Thornley
7个回答

9

你可以随时使用内置的fc文件比较工具进行比较,但是虽然不是免费的,我建议使用Beyond Compare。除了是一个非常好的图形化差异比较工具之外,它还可以从命令行中使用。


如果要集成到应用程序中,我认为Beyond Compare这样的工具并不是一个好选择(尽管它是一个很棒的图形化差异比较程序)。一个小工具,甚至更好的是一个库,似乎是正确的选择。 - rmeador
@rmeador,使用库确实更好。然而,OP要求一个命令行实用程序。 - Lieven Keersmaekers

4

请查看MSYS,它可以在Windows上提供diff和所有常见的GNU工具。

正如其他人所说,你也可以通过安装Cygwin来获得diff和所有这些东西。


最相关的实用程序是“diff”。你也可以通过cygwin获取它,这是我的首选方法。 - rmeador

3

3

纯文本diff不总是能很好地处理xml

以下是一个现有的SO问题,可能会有所帮助:XML Diff and Merge


2
我知道这是一个旧的帖子,但是微软的XML Diff和Patch工具非常适合您所描述的用途:

http://msdn.microsoft.com/en-us/library/aa302294.aspx

重要的区别在于它是一种XML差异工具,而不是文本差异工具。如果节点或属性以不同的顺序出现,文本差异工具将报告大量的误报。
如果您下载示例代码,可以构建XmlDiffView,用于生成xml文件之间差异的漂亮的HTML报告。
我已经使用它来比较大量的app.config和web.config文件,并发现它很方便。

2

好的,Windows已经自带了一个: FC.EXE。它可能不是最好的选择,但也许对你的需求来说足够好了。


FC 在 Windows 7 上似乎出现了故障 - 它拒绝将一个完全有效的文件夹识别为文件夹。 - Johan

2

WinMerge 对我一直都很好用。另一方面,如果你想要非常轻量级的东西,ExamDiff 只有一个 exe 文件。 但是,两者都不是命令行。

对于这个,我建议使用纯粹的 diff,再结合例如 vim 和某些插件,根据您的喜好选择。diff 包含在 unxutils 中,有人已经给出了链接(见上文)。


WinMerge确实提供了命令行访问。 - JohnZaj

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