在比较本地和未更改时,我想使用 P4merge 作为 SVN 中文件的外部差异工具。当我应该编码时,我只花了几个小时。
在 OSX 平台上我需要做什么?
这是一种 hacky,只替换了 diff 工具,而不是 merge 工具,但它在这里:
创建一个名为的python脚本p4merge-diff-cmd
:
#!/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
.
拿起 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