我需要的不仅仅是默认差异!我最近购买了“Beyond Compare”,我想将它与svn集成,所以当我输入时它会启动:
svn diff foo.c
我该怎么做?
答案 0 :(得分:24)
的/ usr /斌/ bcompare_svn:
#!/bin/bash
/usr/bin/bcompare $6 $7 &
exit 0
bcompare的调用很明显,但我必须添加“exit 0”,这样svn一次可以打开多个文件。
为了让svn调用我的脚本,我在〜/ .subversion / config
的[helpers]部分添加了以下行。diff-cmd=/usr/bin/bcompare_svn
答案 1 :(得分:11)
看看svn --diff-cmd。
答案 2 :(得分:8)
我想对Andy Lester的答案添加评论,但我没有足够的声誉。但是,我想我可以回答这个问题。
无论如何......正如Andy已经注意到的那样,运行“svn help diff”,但只是给你答案......
svn diff --diff-cmd< diff-cmd> --extensions< diff-cmd选项>
svn diff --diff-cmd / usr / bin / diff --extensions“-bca”< filename(s)>
答案 3 :(得分:4)
我最近在我们的Using Beyond Compare With Version Control Systems网页上添加了Linux上的Subversion说明。按照上述链接中的步骤操作后,当您运行“svn diff”时,它应启动Beyond Compare 3 for Linux。
答案 4 :(得分:4)
在最新的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