2010-03-30 252 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 -