Как заставить Subversion использовать сторонний инструмент сравнения? - PullRequest
17 голосов
/ 12 ноября 2008

Мне нужно больше, чем разница по умолчанию! Я недавно приобрел Beyond Compare и хотел бы интегрировать его с svn, поэтому он запускается, когда я набираю:

svn diff foo.c

Как мне это сделать?

Ответы [ 5 ]

24 голосов
/ 12 ноября 2008

Из Beyond Сравнить пост форума :

/ USR / бен / bcompare_svn:

#!/bin/bash
/usr/bin/bcompare $6 $7 &
exit 0

Вызов bcompare очевиден, но мне пришлось добавить «exit 0», чтобы svn открывал более одного файла одновременно.

Чтобы svn вызывал мой скрипт, я добавил следующую строку в раздел [helpers] в ~ / .subversion / config

diff-cmd=/usr/bin/bcompare_svn
11 голосов
/ 12 ноября 2008

Посмотрите на svn --diff-cmd.

8 голосов
/ 12 ноября 2008

Я бы хотел добавить комментарий к ответу Энди Лестера, но у меня недостаточно большая репутация. Тем не менее, я могу ответить на вопрос, я думаю.

В любом случае ... как уже заметил Энди, запустите "svn help diff", чтобы просто дать вам ответ ...

svn diff --diff-cmd --extensions <параметры diff-cmd>

svn diff --diff-cmd / usr / bin / diff --extensions "-bca" <имя файла (ов)>

4 голосов
/ 10 января 2013

В последнем Subversion скрипт / usr / bin / bcompare_svn должен выглядеть следующим образом:

#!/bin/bash
cp $6 $6.save
cp $7 $7.save
{
    /usr/bin/bcompare $6.save $7.save 
    rm $6.save $7.save
} &
exit 0

или (непроверенный код)

#!/bin/bash
base=`echo $3 | sed -r "s/^([^\(]+)[ \t]+\((.+)\)$/\1.\2/g" | xargs -i% basename "%"`
current=`echo $5 | sed -r "s/^([^\(]+)[ \t]\((.+)\)$/\1.\2/g" | xargs -i% basename "%"`

mv "$6" "/tmp/$base"
mv "$7" "/tmp/$current"
{
    /usr/local/bcompare/bin/bcompare "/tmp/$base" "/tmp/$current"
    rm "/tmp/$base" "/tmp/$current"
} &
exit 0
4 голосов
/ 11 декабря 2008

Я недавно добавил инструкции для Subversion для Linux на нашу Использование Beyond Compare с системами контроля версий веб-страницу. После того, как вы выполните действия по приведенной выше ссылке, при запуске «svn diff» должен запуститься Beyond Compare 3 для Linux.

...