I have been using meld for this purpose, in Ubuntu you can just do:
apt-get install meld
I think it only does two-way compare, but usually that is only what you need, and only what the diff shows you anyway.
When you get a conflict using SVN and have to do a merge, you usually get 4 files AFAIR.
- file.mine - The file with you local changes as before svn update.
- file.r<n> - The revision on which you created your local changes.
- file.r<n+m> - The revision you updated to from svn, usually HEAD.
- file - Subversions attempt at merging your changes into the updated file.
So to use meld to merge your changes in, you would do:
meld file.mine file.<n+m>
And merge either your changes into the revision updated from svn, or the other way around. It is usually easier to merge the file with the fewest changes to the file with most changes.
And last you would override file with the merged file and do a:
svn resolved file