在OSX上将P4merge配置为我的SVN diff工具

时间:2015-01-09 10:20:29

标签: macos svn p4merge

我想在比较本地和未更改时使用P4merge作为SVN中文件的外部差异工具。我应该在编码的时候花了好几个小时。

在OSX平台上我需要做什么?

2 个答案:

答案 0 :(得分:2)

这有点hacky并且只替换了diff工具,而不是合并工具,但是在这里:

创建一个名为p4merge-diff-cmd的python脚本:

#!/usr/bin/env python

import sys
import os.path

P4MERGE = '/Applications/p4merge.app/Contents/Resources/launchp4merge'

p4merge_args= [P4MERGE]
for arg in sys.argv[1:]:
  if os.path.exists(arg):
    p4merge_args.append(os.path.abspath(arg))

os.execv(P4MERGE, p4merge_args)

并使其可执行

chmod a+x p4merge-diff-cmd

然后,在~/.subversion/config文件中更改行

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

diff-cmd = /full/path/to/p4merge-diff-cmd

现在svn diff <file>应该启动p4merge

答案 1 :(得分:0)

根据 Stefan 的回答,您可以检查 svn 传递的参数是什么,然后编写脚本以挑选出正确的参数。我正在使用 bash,所以:

#! /bin/sh
left=$6
right=$7
/Applications/p4merge.app/Contents/MacOS/p4merge $left $right

# Uncomment this to see what svn passes as parameters
# for i in $(seq 1 11)
#   do echo $i : ${!i}
# done