can some one recommend a good (hopefully free) command line diff utility. I would basically need to kick it off from .Net to produce some sort of a text file with the differences between two xml files.
Thanks!
can some one recommend a good (hopefully free) command line diff utility. I would basically need to kick it off from .Net to produce some sort of a text file with the differences between two xml files.
Thanks!
You can always use the build in fc filecompare tool of windows but, although not free, I would recommend Beyond Compare. Besides being a very good graphical diff tool, it can be used from the command line too.
Check out MSYS, it gives you diff and all the common GNU utilities on Windows.
As somebody else stated, you can also get diff and all that stuff on Windows by installing Cygwin.
Plain text diff
don't always manage xml
nicely.
Here is an existing SO question that might help: XML Diff and Merge
I know this is an old thread, but Microsoft's XML Diff and Patch Tool works well for the use you describe:
http://msdn.microsoft.com/en-us/library/aa302294.aspx
The important difference is that it is an XML diffing utility rather than a text diff utility. Text diffing utilities will report a huge number of false positives if nodes or attributes are in a different order.
If you download the sample code, you can build XmlDiffView, which can be used to produce nice HTML reports of the differences between xml files.
I've used it to diff large numbers of app.config and web.config files, and found it handy.
Well, Windows already comes with one: FC.EXE It probably isn't the best that one can find, but may be it is good enough for what you need it for.
WinMerge always worked for me. On the other hand, if you want something lightweight extreme, ExamDiff is only one exe file. Neither of them are command line, though.
For that I would recommend just plain diff, in combination with, for example, vim and some plugin, depending on your preferences. Diff comes with unxutils, which someone already gave the link for (see above).