本文对原文稍作修改。
svn的其他命令可在我的
SVN介绍、安装及常用命令总结_莫能长老的博客-CSDN博客
这两篇文章中找到。
基本原理是通过修改svn的配置文件,让svn diff命令重定向到vimdiff。
当然还需要把svn diff的参数做个处理,这个处理由一个脚本完成。
实现步骤
1、新建一个脚本diffwrap.sh:
#!/bin/sh
# 去掉前5个参数
shift 5
# 使用vimdiff比较
vimdiff "$@"
放在习惯的路径下,比如 /home/username/myshell/diffwrap.sh
给diffwrap.sh 添加可执行属性
chmod u+x /home/username/myshell/diffwrap.sh
2、编辑svn客户端的配置文件(一般都在这个路径下)
vim ~/.subversion/config
找到 #diff-cmd = 开头的那行。
复制一行新的,把新行开头的#删除,然后把 = 后面的默认内容替换为上面脚本文件的全局路径,修改后的新行例如:
diff-cmd = /home/username/myshell/diffwrap.sh
3、修改已经完成,可以直接执行 svn diff <file> 了。退出时可以直接用 :qall 来退出。
PS:
~/.subversion/config里的都是svn的部分参数,直接在命令行svn后面使用-diff-cmd来修改执行的文件的路径也是可以的,这里是对当前用户永久化更改了。
存在一点小bug,产生的文件对比,左边文件的关键词和注释的颜色会失效,仍然是白色,不知道如何修改。