Where can I find a convenient graphical diff-tool for Mac OS X (freeware)?
FileMerge
[1]. It is included when you install
Xcode
[2], and available from the command line using the opendiff
command.
FileMerge can handle utf8: just type
find ./ -name "*" -exec xattr -w com.apple.TextEncoding 'UTF-8;134217984' {} \;
in whatever directories your files are.
Sourcegear's DiffMerge is another good, free alternative:
http://sourcegear.com/diffmerge/
DiffMerge does inline editing and seems to be using a better diff algoritm than FileMerge is.
opendiff
allow this? (Yes I can go test it myself but I think other readers will benefit if we point out which tools DO allow the editing of proposed merge) - Steven Lu
Kaleidoscope [1]
Paid, but it has the best looking UI of any diff tool I've seen for Mac. Kaleidoscope also does a very nice job of breaking down which words differ inside lines and nicely wrap long file formats like html so the atomic changes are more graphically evident. Compared to line based diff tools, this is a nice step up.
Features (given in the comments) like diffing folders and merging (including 3-way merge) are supported to some degree in version 2.0 [2].
[1] http://www.kaleidoscopeapp.com/These aren't all freeware, but if you're looking for something with a few more features, a couple other options include:
Changes, a nice looking shareware tool that will diff folder hierarchies and files
TextWrangler, a free text editor which includes a built-in diff feature, as well as its big brother BBEdit
Araxis Merge, which looks to be the most advanced (and most expensive) with tons of features, including three way merging and direct diffing of non-plain text documents such as MS Word and PDF.
http://www.araxis.com/merge/index.html
p4merge (The Perforce Visual Merge Tool) is a pretty decent graphical diff/merge tool. It comes with the free Perforce client for Mac OSX. It's also a separate application so you don't necessarily need to use it with Perforce.
Install gVim [1], use "gvim -d".
[1] http://en.wikipedia.org/wiki/Vim%5F%28text%5Feditor%29#InterfaceTo open Filemerge from the command line, use opendiff, e.g.:
$ opendiff file1.txt file2.txt
You should consider DeltaWalker. It runs on Mac/Win/Linux. It does file AND folder comparisons, and allows in-line editing.
http://www.deltopia.com/compare-merge-sync/macosx/
According to reviews on macupdates, the customer service is great.
It's not freeware, but it seems to be one the clients with the most fully rounded feature sets. It seems very comparable to Araxis Merge or the windows-based product BeyondCompare
With the FileMerge from XCode as suggested above, one can have a nice integration with SVN from command line:
create a wrapper script say opendiff-svn-wrapper.sh
with following content:
#!/bin/sh
shift 5
/usr/bin/opendiff "$@"
either either define an alias in bash/sh: alias svndiff="svn diff --diff-cmd <path/to/opendiff-svn-wrapper.sh>"
and use it like svndiff -r HEAD <somefile>
or modify the SVN settings in ~/.subversion/config
the diff-cmd
directive and then use it as plain old svn diff
My favorite is http://meld.sourceforge.net/
meld
is available through port. But be warned, it installs a bunch of dependencies: pastebin.com/trndVk1u - scorpiodawg
TextWrangler
[1] has a great diff tool twdiff
and it is free. if you find it useful, please consider buying a product of
Bare Bones Software
[2] and support its development.
I know this is an old thread, but for the benefit of those stumbling onto this (like me), Wiki has a pretty good matrix comparison of diff tools across all platforms:
http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools
Someone above posted a link to my differ, RoaringDiff.
http://www.biscade.com/tools/diff/
The big story for RoaringDiff is that it is intended for invocation from other programs, such as a Perforce or SVN CLI in the Terminal (or an xterm). It is heavily inspired from xxdiff, though not as fancy.
The differ is a front-end over diff(1). Unlike some of the tools such as FileMerge, RoaringDiff is GNU GPLv3; there is a Google Code project, and I'll happily take any patches to make it better. I use the differ everyday; it's not as flexible as it could be, but I do have a lot of miles on the code--there's some bugs that still need to be fixed (they are filed in the Google Code project).
The GUI is written in Objective-C. I still need to port the renderer to Quartz.
hmmmm still nothing comparable to BeyondCompare (http://www.scootersoftware.com/) ... which is one of the two reasons to keep a Windows VM ...
install tkdiff using MacPorts [1] with:
sudo port install tkdiff
then use it to compare 2 files a.txt and b.txt:
tkdiff a.txt b.txt
it's great and simple. insanely fast, no fuss, lots of shortcuts: q
to quit.
when in a svn local copy, you may simply issue
tkdiff my_script.py
to visualize the difference that you made in your lacal copy on that file.
[1] http://www.macports.orgEclipse also has a fairly decent comparison mechanism.
Tkdiff [1] works on the Mac as well as any other platform where Tcl/Tk [2] works. Screenshot [3].
[1] http://sourceforge.net/projects/tkdiff/I had to use Vim [1] because most of diff-s mentioned here do not understand UTF-8 [2].
[1] http://en.wikipedia.org/wiki/Vim%5F%28text%5Feditor%29What about comparing folders? For that I found a free program that isn't based on diff (as far as I know) but does exactly what I was using diff for only better... Compare Folders http://www.apple.com/downloads/macosx/system_disk_utilities/comparefolders.html
I found this stackoverflow post when Googling for diff gui programs. My hope was that I'd find one that 1) would compare directories, 2) given a ton of data would organize the information well, 3) would not crash, 4) would not take forever comparing bits of files when all I needed was filesize and timestamp comparisons, 5) free. Since I didn't find any mention, thought I'd share Compare Folders. It's quicker than most at this kind of high level comparison, and it's free.
P4Merge that comes with Perfoce is pretty good and comes for free with perforce client. Both terminal and GUI version. perfoce.com
ECMerge is my preferred merge/diff tool on Mac. I also diff with TextMate sometimes.
I used BeyondCompare with Multi-Edit when they ditched a better diff tool a few years ago. Didn't really like BC. I should not have to edit in a box at the bottom of the window. Stupid.