用meld代替默认的diff工具

Meld 是一个可视化的文本差异比较工具,它可以跟多个版本控制系统集成,个人认为它是最好用的。
如何让Meld成为你SVN或GIT的默认diff工具呢? 下面我简单的说一下

##安装Meld
在Ubuntu下,只需一条简单的命令就可以了
sudo apt-get install meld
让SVN使用Meld作为diff工具
编辑 ‘~/.subversion’目录下的config文件,将meld赋值给diff-cmd,如下所示:

1
2
3
4
### Set diff-cmd to the absolute path of your 'diff' program.
### This will override the compile-time default, which is to use
### Subversion's internal diff implementation.
diff-cmd = meld

此后,使用svn diff命令时,将调用meld工具进行比较。

让GIT使用Meld作为diff工具
首先,设定GIT让它使用Meld
git config --global diff.external meld
然后像往常一样比较某个文件
git diff filename
这时,虽然Meld会被调用,但是系统会报错”Wrong number of arguments(Got 7)”。原因是GIT会送7个参数给Meld,但是Meld只需要两个参数,两个需要比较的文件名。所以不能直接用Meld,必需要做一点小修改:
在自己的目录下建立一个git-meld.sh的script
vim ~/git-meld.sh
加入以下内容:

1
2
#!/bin/sh
meld $2 $5

更改文件的权限:
hmod 777 ~/git-meld.sh
然后把external diff改成这个shell script:
git config --global diff.external ~/git-meld.sh