我想使用 meld 来查看修订版之间的差异。我安装了meld,然后在项目目录下执行:
svn diff -r 2165:2182 --diff-cmd meld
但它会引发以下错误:
Index: app/models/college_friends_count.rb
===================================================================
svn: E200012: Process 'meld' failed (exitwhy 2)
谁能告诉我这里出了什么问题吗?
我相信 E200012 意味着底层进程(meld)以非零退出代码退出。许多 diff 工具都这样做来指示 diff 操作的结果(0 = 无差异 1 = 差异等)。
虽然我的 meld 版本似乎没有使用非零退出代码,但我知道 colordiff 会使用非零退出代码,它会在目录爬行“svn diff”期间停止 SVN,如上面的示例所示。在没有任何要测试的更改的文件上尝试一下。
一个好的解决方法是创建自己的 diff 命令,假设您将其称为 meld_svn:
#!/bin/bash
meld "$6" "$7"
exit 0
所以我们要做的是忽略 meld 的退出代码,并使用我们自己的退出代码(这不会阻止 SVN)。参数周围的引号意味着其中包含空格的文件名不会破坏您的脚本。
使其可执行,然后编辑 ~/.subversion/config 并将 diff-cmd 设置为“meld_svn”。这对于 colordiff 非常有用,如果 meld 确实以非零退出代码退出,应该可以解决 meld 的问题。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)