Mac、Linux更换命令行svn diff为P4Merge、vimdiff
今天学习git的时候,说可以自己定义一个merge和diff程序来替换git diff命令执行时默认的diff程序,正好我*近天天在mac的Terminal上敲打着svn diff,就想尝试能不能把svn的默认diff也替换掉,可是又不知道svn的svn diff命令默认配置在哪里,于是Google到了上面那位大神了。(大神就是大神,我刚想到的东西大神已经玩烂了)
不扯了,上面就是这篇笔记的产生背景,希望可以给后续有类似想法的同行们和记忆力*差的自己留个“案底”。
*步:下载、安装P4Merge(一个不错且免费的合并和解决冲突的图形化工具)
下载地址:www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Mac下安装目录:/Applications/p4merge.app/Contents/MacOS/p4merge
第二步:写两个简单的shell脚本,特别简单
脚本1: /usr/local/bin/extMerge:
1 #!/bin/sh 2 /Applications/p4merge.app/Contents/MacOS/p4merge $*
脚本2: /usr/local/bin/extDiff:
1 #!/bin/sh 2 /usr/local/bin/extMerge "$6" "$7"
确认这两个脚本是可执行的:
1 $ sudo chmod +x /usr/local/bin/extMerge 2 $ sudo chmod +x /usr/local/bin/extDiff
第三步:修改~/.subversion/config文件,
将其中
1 # diff-cmd = diff_program (diff, gdiff, etc.)
替换成
1 diff-cmd = /usr/local/bin/extDiff
第四步:执行下source ~/.subversion/config,会输出有一些错误,不用管!骚年,任性的去执行svn diff吧,看看发生什么了。
第五步:替换vimdiff。(请移步文章开始的大神博客地址吧),下面就是从大神哪里抄来的vimdiff替换方式。
Note:
无耻的抄袭下大神的shell脚本,你不会咬我吧。(以防那天大神不开心,不让我们学习拜读怎么办)
#!/bin/sh # 配置你喜欢的diff程序路径 DIFF="vimdiff" # SVN diff命令会传入两个文件的参数 LEFT=${6} RIGHT=${7} # 拼接成diff命令所需要的命令格式 $DIFF $LEFT $RIGHT
把这个文件改名为svndiff,放在/usr/local/bin/目录里,并给执行权限,剩下的替换操作如上。