2008-11-12 31 views
17

我需要的不止是默認差異!我最近購買了「超越比較」和我想它使用svn整合,所以其當我輸入推出:如何讓Subversion使用第三方差異工具?

SVN差異foo.c的

我該怎麼辦呢?

+1

提到Linux的原來的問題。這可能應該留在問題的標題中。 – 2008-11-12 17:12:34

回答

23

Beyond Compare forum post

在/ usr/bin中/ bcompare_svn:

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

bcompare的調用是顯而易見的,但我不得不添加 「退出0」,使SVN會打開多個文件一次。

爲了讓SVN調用我的劇本,我加在[助手]部分下面一行在〜/的.subversion /配置

diff-cmd=/usr/bin/bcompare_svn 
11

看看svn --diff-cmd。

+1

與--diff-cmd svn客戶端(我的是1.6.6)仍然生成-L選項到指定的命令,如-L「file1(rev xyz)」-L「file2(rev abc)」所以,除非你的diff cmd與那些一樣好,它壞了。 Chris在他的Beyond Compare頁面中有一個很好的解決方法,它涉及到創建一個啓動腳本。 – greggo 2012-01-24 16:56:37

8

我想添加到安迪·萊斯特的答案,但我評論沒有足夠的聲譽。不過,我想可以回答這個問題。

反正...安迪已經指出的那樣運行 「SVN幫助中DIFF」,但只給你答案......

SVN差異--diff-CMD < DIFF-CMD > --extensions < DIFF- CMD選項>

SVN差異--diff-CMD在/ usr/bin中/ DIFF --extensions 「-bca」 <文件名(S)>

4

我最近增加了對Linux上的顛覆說明我們的Using Beyond Compare With Version Control Systems網頁。一旦你按照上述鏈接的步驟,當你運行「svn diff」時,它應該啓動Beyond Compare 3 for Linux。

+0

請注意,您需要專業版才能正常工作。 – 2010-08-03 20:45:01

+0

是的,這解決了我的問題:-),謝謝 – Abdullah 2012-03-31 06:23:34

4

在最新的顛覆,這個腳本在/ 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 
相關問題