Use vimdiff to display subversion diffs

I prefer using vimdiff or gvimdiff to view differences between files. When researching ways to allow using vimdiff to view subversion differences, I came across this article.

The bottom line is that subversion passes the two relevant arguments as the 6th and 7th arguments, so the following shell script wrapper does the trick:

#!/bin/sh
/usr/bin/gvimdiff ${6} ${7}

Save the script as gvimdiff_wrapper.sh, make it executable and accessible on your path. Then modify $HOME/.subversion/config to have the following line:

diff-cmd = gvimdiff_wrapper.sh

That will allow you to use gvimdiff to display the diff generated by svn diff my_file.txt

Tags: , , ,

  1. Dean’s avatar

    Great tip! Thanks.

    This works perfectly when doing a straight svn diff like this:
    svn diff file1.php

    But when I want to compare two arbitrary revisions in the svn repository like this:
    svn diff -r 65:24 file1.php

    it doesn’t work. gvimdiff opens with two empty files named tmp and tmp.2

    Any idea on how to make it work in this situation?

  2. Brian Adkins’s avatar

    Sorry, I don’t have a good solution off hand. I actually switched to Emacs a while ago and it handles anything I’ve thrown at it.

  3. dig’s avatar

    gvimdiff –nofork might help there Dean