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

  • Git-diff to HTML
  • Git show whole file changes
  • git diff - external viewer - get all diff results
  • Git diff: Write output and exit instead of interactive mode
  • How do I exclude certain files from a svn diff?
  • Shorthand to view diff of previous version of file
  • 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.

  • Merge some files now and some later
  • Why does git-describe prefix the commit ID with the letter 'g'?
  • Change Git branch on SSH remote before cloning
  • Git diff tool over several commits with other's commit inbetween
  • Why do I have to “git push --set-upstream origin <branch>”?
  • New repo with copied history of only currently tracked files
  • 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.