将SVN diff 默认模式更换为 vimdiff

所属:Tools

自从由图形操作转到命令行终端(Terminal)上操作后, SVN diff 一直让我很纠结,刚好某天看到标哥在 diff 文件时,他那种类似 Compare Beyond 左右对比的画面,正式我想要的—— vimdiff

创建svndiff文件

1
2
3
4
5
~
cd /usr/local/bin
local/bin git/master
❯ touch svndiff

进入到指定目录,新建一个文件名为 svndiff

编辑svndiff文件内容

1
2
local/bin git/master
❯ vim svndiff

打开 svndiff , 输入内容如下:

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
# 配置你喜欢的diff程序路径
DIFF="vimdiff"
# SVN diff命令会传入两个文件的参数
LEFT=${6}
RIGHT=${7}
# 拼接成diff命令所需要的命令格式
$DIFF $LEFT $RIGHT

修改svndiff文件权限

1
2
local/bin git/master
❯ chmod 775 svndiff

默认创建 svndiff 时,只有读的权限,需要给它加上可以执行的权限才行,不然在对比时文件会执行失败,提示权限不够的。

修改svn的默认配置

1
2
local/bin git/master
❯ vim ~/.subversion/config

找到 diff-cmd 这一行
把默认的

1
# diff-cmd = diff_program (diff, gdiff, etc.)

替换成

1
diff-cmd = /usr/local/bin/svndiff

最终效果如下:

参考资料