Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 355
agiliq Avatar asked Dec 18 '22 05:12

agiliq


2 Answers

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
like image 140
Nathan Monteleone Avatar answered Dec 19 '22 19:12

Nathan Monteleone


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.

like image 26
Joey Avatar answered Dec 19 '22 18:12

Joey