tags:

views:

3928

answers:

11

Which is the best Visual SVN Diff displayer for Linux.

BeyondCompare and VisualSVN1.5 work well on Windows. What are the equivallent tools for Linux. Specifically Ubuntu.

I know command line diff works; But I'd like multiple column syntax highlighted and differences.

Better if the tool has a support for Git and Hg as well.

+8  A: 

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
bjarkef
+1  A: 

I've used SlickEdit a lot on Linux. It has a pretty nice integrated diff viewer/editor. It works with SVN, CVS and a couple other version control repositories.

Eric
+1  A: 

What about kdiff (especially if you use KDE) Or, if you have an IDE (like Eclipse / netbeans), does it not provide SVN-related functionnalities ?

(I personnaly use Eclipse PDT for PHP ; and it's Subversive plugin for SVN)

Pascal MARTIN
+2  A: 

KDiff3 is very good (I also use it on windows). It works for both compare and merge.

jeroenh
+3  A: 

Note: If your diff tool has a CLI (a command line interface), it can be integrated with Git quite easily, both for diff and merge (if it supports 3-way merges).
Since Git1.6.3, the difftool - mergetool options allow you to integrate that diff program (see "How do I view 'git diff' output with visual diff program?").

KDiff3 for instance is a good candidate for that, since it is even auto-detected by Git.

VonC
+2  A: 

Diffuse supports Subversion, Mercurial, Git, and several other version control systems. It works on Windows too. For Ubuntu, just install the .deb package with "$ sudo dpkg -i diffuse-*.deb" and then run "diffuse -m" to view your changes or fix merge conflicts.

Derrick Moser
Sourceforge repo page says "0" downloads
Lakshman Prasad
"0 downloads" is a SourceForge statistics server hiccup.
Derrick Moser
+4  A: 

Beyond Compare supports Linux as well. If you already like BC for Windows, I'd say go with a winner.

Lasse V. Karlsen
+1  A: 

I use Vim's diff mode for this. With the vcscommand plugin, you can simply type :VCSDiff to enter diff-mode on the current file versus its history.

ephemient
+1  A: 

Well.. did anyone try DiffMerge yet ? If not then I recommend all to do so. If you have used WinMerge for windows, then you will find this as a great alternative to WinMerge for Ubuntu / Linux.

Try out the following web for details: http://www.webtechquery.com/index.php/2010/05/free-diff-tools-ubuntu-linux-windows/

Thanks

Zeeshan Khan
+1 on DiffMerge. It makes me happy for 3-way merges.
David Wolever
A: 

there is also ECMerge, it has built-in support for HG,Git,Bazaar browsing (as long as their respeticve command line tool is there), together with syntax highlighting and so on: http://www.elliecomputing.com/ it works identically on Linux, MacOS X, Solaris and Windows.

Armel
A: 

You may want to try out xd http://github.com/jiqingtang/xd, which is GUI wrapper for GIT/SVN diff. It is NOT a diff tool itself. You run "xd" when you want to run "git diff" or "svn diff" and it will show you a list of files, a preview window and you can launch any diff tool you like, including tkdiff, xxdiff, gvimdiff, emacs(ediff), xemacs(ediff), meld, diffuse, kompare and kdiff3. You can also run any custom tool.

Jiqing Tang