我需要超过默认的差异! 我最近买了“Beyond Compare”,我想把它和svn整合,所以当我input:
svn diff foo.c
我该怎么做呢?
从一个超越比较论坛帖子 :
在/ usr / bin中/ bcompare_svn:
#!/bin/bash /usr/bin/bcompare $6 $7 & exit 0
调用bcompare是显而易见的,但我不得不添加“退出0”,这样svn会同时打开多个文件。
为了让svn调用我的脚本,我在〜/ .subversion / config的[helpers]部分添加了下面一行
diff-cmd=/usr/bin/bcompare_svn
看看svn –diff-cmd。
我想给安迪·莱斯特的回答添加一个评论,但是我没有足够的声望。 不过,我想可以回答这个问题。
无论如何…正如安迪已经注意到运行“svn帮助差异”,但只是给你答案…
svn diff –diff-cmd <diff-cmd> –extensions <diff-cmd options>
svn diff –diff-cmd / usr / bin / diff –extensions“-bca”<filename(s)>
我最近在Linux上添加了Subversion的说明,以便我们使用Beyond Compare与版本控制系统的网页。 一旦你按照上述链接的步骤,当你运行“svn diff”时,它应该启动Beyond Compare 3 for Linux。
在最新的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