agiliq
agiliq

Reputation: 7758

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.

Upvotes: 4

Views: 8190

Answers (3)

Nathan Monteleone
Nathan Monteleone

Reputation: 5470

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:

#!/bin/bash
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

Upvotes: 5

Joey
Joey

Reputation: 354864

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.

Upvotes: 4

Related Questions