LINUX下面的svn diff直接查看的话很吃力,也很不方便。所以网上找到如下解决方案,能方便的使用vimdiff来查看svn diff的代码查看工具,相当方便。


配置方法为:

1、编写脚本diffwrap.sh:

#!/bin/sh

#过滤掉svn diff的前五个命令行参数
shift 5

#使用vimdiff比较文件
vimdiff "$@"

2、在svn的配置文件,一般为~/.subversion/config文件,找到配置行diff-cmd,修改为如下:

diff-cmd=/usr/local/bin/diffwrap.sh

其中,后者为你放置diffwrap.sh脚本的绝对路径.这样使用svn diff就可以像windows下的svn客户端的diff那样查看文件差异了。


上面的实现原理见svn diff的官方说明:

当使用一个外部的diff命令时,Subversion会生成一个非常复杂的命令行。第一个参数就是具体的--diff-cmd,然后就是具体的 --extensions (尽管使用空白
的--符号时会忽略扩展),或者如果没有指定--extensions或者--extensions为空的话,就加上‘-u’参数。第三和第四个参 数,Subversion会传递一个“-L”
还有第一个文件的标签(例如,“"project_issues.html (revision 11209)”)。第五个和第六个就是另一个“-L”和第二个文件的标签。第七和第八个参数分
别是第一个和第二个文件的名称(例 如,“.svn/text-base/project_issues.html.svn-base”和“.svn/tmp /project_issues.html.tmp”)。

余下的使用vimdiff的相关操作键即可,vimdiff的常用操作如下:

1、"]"+"c" 组合键表示显示下一个不同的地方;

2、“[”+"c"组合键表示跳转到之前的不同的地方;

3、“:”+“diffupdate”可以在编辑后刷新新的文件,展示修改后的不同的迪昂;

4、"<ESC>"+"u"表示撤销修改;



Logo

更多推荐