linux - 无法使用 meld 进行 svn diff

标签 linux svn meld

我想用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 问题。

希望对您有所帮助。

关于linux - 无法使用 meld 进行 svn diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114586/

相关文章:

svn - 一些基本的版本控制问题

Git Difftool Meld 在 Babun 中不起作用

Ubuntu 融合 : No GSettings schemas are installed on the system

r - 显示 GGplots 的最佳(或好)方式

svn - 在Subversion中用另一个目录的副本替换目录

php - Shell:SVN 状态管道到 php 以检查语法

svn - *.edited 文件是在合并过程中创建的

linux - Nginx 无法在 755 权限文件夹中创建文件

linux - 我上次 Linux 期中考试的 PATH 问题,我需要有人解释一下

linux - 'low memory'在linux中是什么意思