TAGS :Viewed: 9 - Published at: a few seconds ago

[ How to use beyond compare as a external svn diff tool ]

I want to configure it so that svn diff filename shows the diff in beyond compare.

I am on ubuntu. On a related note what is everyone using to diff and merge. BC is awesome on windows, but very ugly looking on Linux, imo.

Answer 1

Like the other answers have said -- you have to call beyond compare from a script and pass that to subversion's --diff-cmd option. I use the following script on linux:

test `/usr/bin/bcompare "$6" "$7" -title="$3" -title2="$5" -readonly` > 2 && exit 1; exit 0

That's similar to what the link in CooCooC's post says, except that it translates the return value of beyond compare into what subversion expects: 0 for no difference, 1 for difference. That gets rid of the error messages and aborts that otherwise get in your way...

EDIT: See colgur's comment below, a better way to do it is:

/usr/bin/bcompare "$7" "$6" -title1="$5" -title2="$3" -readonly & wait $! [ $? -gt 2 ] && exit 1; exit 0

Answer 2

See the SVN Book on External Diff Tools:

The presence of --diff-cmd and --diff3-cmd options, and similarly named runtime configuration parameters (see the section called “Config”), can lead to a false notion of how easy it is to use external differencing (or “diff”) and merge tools with Subversion. While Subversion can use most of popular such tools available, the effort invested in setting this up often turns out to be non-trivial.


The key to using external diff and merge tools (other than GNU diff and diff3, of course) with Subversion is to use wrapper scripts which convert the input from Subversion into something that your differencing tool can understand, and then to convert the output of your tool back into a format which Subversion expects—the format that the GNU tools would have used. The following sections cover the specifics of those expectations.

Answer 3

See here: for Beyond Compare's KB for Version Control settings

Answer 4

Definitely a fan of Beyond Compare, as it not only serves as a very good diff/merge tool for use with source control, it does a very good job of helping to synchronise directories/files in general. An absolute no-brainer, when it comes to buying a copy - can't vouch for the Linux version, though, as I've never used it.