Git可视化比较工具P4Merge

在转战Mac之后,BeyondCompare 不再那么容易免费使用,今天终于让我找到了一个Git的GUI比较工具P4Merge,免费的,支持中文,还不错,推荐一下

下载

打开这个链接: perforce-visual-merge-and-diff-tools,点左上角的 FREE DOWNLOAD P4Merge , 找到 Perforce Clients 中的 P4Merge: Visual Merge Tool 项,在右边的第二行选择Mac OS 10.6+ (64bit) ,点下面橙色的 Accept and Download,选择跳过 Skip Registration ,就会开始下载了。

下载到P4V.dmg文件后,双击打开,拖动P4MergeApplication文件夹上就可以完成安装了。

配置

  1. git config –global diff.tool p4merge
  2. git config –global difftool.p4merge.cmd /Applications/p4merge.app/Contents/MacOS/p4merge
  3. git config –global difftool.p4merge.cmd “/Applications/p4merge.app/Contents/Resources/launchp4merge \$LOCAL \$REMOTE”
  4. 复制代码

如果直接复制原文的代码,运行上面的代码时会提示: error: key does not contain a section: -global 跟别人的命令比较一下,就会发现应该是—global(要两个短横连在一起的),原文的短横线有问题

现在敲git difftool命令执行时,会提示:

/usr/libexec/git-core/mergetools/p4merge: line 2: p4merge: command not found

原因是路径还需要再配置一下,如下

git config --global difftool.p4merge.path "/Applications/p4merge.app/Contents/Resources/launchp4merge" 以后想要比较Git中的代码时,敲git difftool filepath 即可

Linux、Windows下也都可以使用这个工具进行比较代码,只是需要另行配置了。P4Merge除了有比较功能,还有合并功能,怎么配置可以借鉴下面给出的参考链接。另外还有一个可视化比较工具meld,据说也不错,有时间试试.

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/目录里,并给执行权限,剩下的替换操作如上。