2010-03-30 249 views
3

還有另外一個問題:如何讓diff看起來像svn diff?但我想要完全相反。 我試圖讓SVN DIFF與<顯示和>如何讓svn diff看起來像diff?

顯而易見的答案是:

svn diff --diff-cmd /usr/bin/diff file 

但是當我做,我得到

/usr/bin/diff: illegal option -- L 

所以我這樣做

svn diff --diff-cmd /usr/bin/echo file 

看看是怎麼回事。它吐出了這一切,這是我能明白爲什麼差異不喜歡它....

-u -L file (revision 11371) -L file (working copy) .svn/text-base/file.svn-base file 

所以...我怎麼做SVN實際使用另一個程序的版本比較?

回答

6

您的系統上似乎安裝了一個diff版本,該版本太舊或與svn如何調用它不兼容。在我的系統,-L選項正是如此定義:

-L label 
    --label=label 
      Use label instead of the file name in the context format and unified format headers. 

所以,你應該只使用一個diff命令將它傳遞到系統的差異之前刪除該標誌。我做類似的添加選項差異比較(添加顏色)的自定義設置,東西在我的.subversion/configs文件:

diff-cmd=/home/ether/bin/svndiff-w 

...這裏的計劃僅僅是一個簡單的shell腳本:

#!/bin/bash 
diff=/usr/bin/colordiff 
args="-u -wi -U 6 --new-file"  
exec ${diff} ${args} "[email protected]" 

這在手冊的Using External Differencing and Merge Tools下詳細討論。

0

我獲得與--diff-cmd選項同樣的錯誤,這是我怎麼能強迫我/usr/bin/diff的正確用法:

svn cat $FILE --revision COMMITTED | diff $FILE -