svn - 如何使用meld设置svn冲突解决方案?

标签 svn meld

我在我的 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/

相关文章:

svn - 如何在SVN中镜像文件?

svn - 带有 mod_ldap 的 Apache 备份 LDAP 存储库

svn - SVN递归提交的概念

linux - jenkins svn 以 root 身份运行

merge - 如何在 Linux 上使用 Meld 进行合并

linux - 具有合并和多个文件的 SVN

git-extensions - Git 扩展和 Meld 合并

当 svn checkout 失败时 Jenkins 作业会自行禁用

git - 使用 meld 的“git mergetool”无法创建 '--output $MERGED' 文件

diff - 与剪贴板的三向差异