Visual SVN diff and compare tools for Linux

Which is the best Visual SVN Diff displayer for Linux.

BeyondCompare and VisualSVN 1.5 work well on Windows. What are the equivalent tools for Linux? (Specifically Ubuntu).

  • Apply a commit chunk by chunk
  • Git diff: is it possible to show ONLY changed lines
  • Strange output of git diff to file in Ubuntu
  • How to tell `git log --stat` to count empty lines
  • Is there a ruby gem that does diff between HTML documents?
  • How do I view previous diff commits using git?
  • 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.

  • Git svn fetch retrieving only one revision at a time
  • Reset or revert a specific file to a specific revision using Git?
  • Makefile error: Unexpected end of line seen
  • How to remove all files in a Git repository that are not in the working directory?
  • How to do emergency fixes on master in git?
  • Telling git not to change a file
  • 12 Solutions collect form web for “Visual SVN diff and compare tools for Linux”

    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 difftoolmergetool 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.

    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 your 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

    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.

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

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

    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.

    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)

    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.

    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:


    You may want to try out 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.

    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:
    it works identically on Linux, MacOS X, Solaris and Windows.

    From few months I have been using submerge from “subcommander” package. I’ve described it here.

    Git Baby is a git and github fan, let's start git clone.