I was looking for a tool to compare the source files of two java projecs (actually, two versions of the same project) to find out the differences. I read about meld, which looked promising. It’s an open source tool which was developed for Linux, but has been ported to Mac and Win,
The installation of meld (on a Snow Leopard). Mac OSX 10.8) was not without problems, but it was finally successful. So now I have a set of hints to avoid running int the same troubles I went through. The problems boiled down mostly to incompatibility with the version of XCode I had, and communication problems with the X11 server. After googling and experimenting a bit I figured out how to solve them, and I think I can suggest a path that should minimize the hurdles and possibly work in a straightforward way. Here it is:
1) make sure you have the last version of XCode installed. I have 5.0 (5A1413)
2) launch XCode, go to Preferences->Download and install the Command Line Tools
3) do a
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
4) Install Quartz (http://xquartz.macosforge.org/landing/) – i used the last available version: 2.7.4
5) Install MacPorts (http://www.macports.org/install.php) . I used the dmg. Make sure you have the last version: once installed, do a
sudo port -v selfupdate
6) Install meld, doing a
sudo port install meld
At this point it should (more or less) work. You can launch it from the shell
What I mean by “more or less” is that it gave me (yet another) an error, but this time it also suggested a solution, which was:
launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist
after that, it I relauched it and: success!
It still gives a warning:
“Couldn’t bind the translation domain. Some translations won’t work.”
but the window is there, and I can nicely compare files and even directories, as the following snapshots show.
Ok, the GUI is could look better on a Mac, but the functionalities are there and the tool seems to work pretty well. It’s also much faster than i expected.
There are still some minor problems (on the console it gives every now and then errors such as
TypeError: <HistoryFileEntry object at 0x1626ffb90 (HistoryFileEntry at 0x7fa374440be0)>: unknown signal name: changed
but all I need seems to be working fine.