我在我的 Subversion 配置中指定了 merge-tool-cmd = meld。当我使用提供的冲突解决选项中的选项 l 解决合并冲突时,我收到以下消息:
meld: error: too many arguments (wanted 0-4, got 5)
The external merge tool exited with exit code 2
任何人都可以诊断问题/提供解决方案吗?谢谢。
最佳答案
首先警告!如果您弄错了,很容易最终丢失您的本地编辑!测试测试测试!
恐怕 pmod 链接中的脚本不适用于 svn 1.6(当前在 Ubuntu 11.04 中)。将来自 pmod's link 的代码放在一起和 here和建议 here ,我制作了这个似乎可以正常工作的脚本:
#!/usr/bin/env python
# svn merge-tool python wrapper for meld
import sys
import subprocess
try:
# path to meld
meld = "/usr/bin/meld"
# file paths
base = sys.argv[1]
theirs = sys.argv[2]
mine = sys.argv[3]
merged = sys.argv[4]
# the call to meld
# For older meld versions:
# cmd = [meld, mine, base, theirs, merged]
# New meld versions: >= 1.8.4
cmd = [meld, mine, base, theirs, '-o', merged]
# Call meld, making sure it exits correctly
subprocess.check_call(cmd)
except:
print "Oh noes, an error!"
sys.exit(-1)
将此保存在合理的地方(例如
/usr/local/bin/svn-merge-meld.py
)并使其可执行:sudo chmod +x /usr/local/bin/svn-merge-meld.py
然后编辑
~/.subversion/config
并取消注释该行 merge-tool-cmd =
,并设置您的命令的路径。请注意,当发生冲突时,系统会提示您如何处理。您需要输入一个
l
并让 svn 运行此脚本。完成合并后,您需要输入 r
解决冲突并将合并的版本复制到工作副本。
关于svn - 如何使用meld设置svn冲突解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7252011/