ReviewBoard/SVN: rbt post 执行命令失败 ['svn', 'diff', '--diff-cmd=diff', '--notice-ancestry', '-r', 'BASE']

Jam*_*vec 1 svn diff review-board

我正在尝试reviewboardSVN. 办公室里的其他人已经完成了他们的系统设置并且能够发布(第一次让它工作的虚拟机的副本)。据我所知,我已经将我的系统设置与他们的系统设置进行了比较,并且看起来是一样的。

当我运行rbt post命令时,我得到:

无法执行命令:['svn', 'diff', '--diff-cmd=diff', '--notice-ancestry', '-r', 'BASE'] ['Index: main.cpp\n ', '================================================ ========== ==========\n', '用法: diff [OPTIONS] \n', '\n', '在统一差异中显示和之间的差异\n', "格式。OPTIONS 是 'svn help diff' 中描述的 diff 扩展名。\n", "单独使用 '--' 表示后面没有更多选项。\n", "svn: E200012: ' diff' 返回 2\n"]

我已经让我的 svn 客户端和 gnu 区分了系统路径中的前两件事: C:\Program Files (x86)\GnuWin32\bin;C:\Program Files (x86)\CollabNet

我正在运行 Windows 8 机器。

阅读https://groups.google.com/forum/#!topic/reviewboard/ylyfqMghJMM看起来其他人已经添加了同样的问题,但似乎没有关于如何解决问题的准确解释。

一些细节。svn --version给出:

svn,版本 1.8.9 (r1591380) 编译于 2014 年 6 月 6 日,03:53:07 在 x86-microsoft-windows5.1.2600 上

版权所有 (C) 2014 Apache 软件基金会。该软件由许多人的贡献组成;有关更多信息,请参阅通知文件。Subversion 是开源软件,参见 http://subversion.apache.org/

以下存储库访问 (RA) 模块可用:

  • ra_svn :使用 svn 网络协议访问存储库的模块。
    • 使用 Cyrus SASL 身份验证
    • 处理“svn”方案
  • ra_local :用于访问本地磁盘上的存储库的模块。
    • 处理“文件”方案
  • ra_serf :使用 serf 通过 WebDAV 协议访问存储库的模块。
    • 使用农奴 1.3.4
    • 处理“http”方案
    • 处理“https”方案

diff --version 给出:

diff (GNU diffutils) 2.8.7 由 Paul Eggert、Mike Haertel、David Hayes、Richard Stallman 和 Len Tower 编写。

版权所有 (C) 2004 Free Software Foundation, Inc。这是免费软件;请参阅复制条件的来源。没有保修;甚至不是为了特定目的的适销性或适合性。

关于我应该检查什么或我遗漏了什么的任何想法或想法?我也要去google组发帖,看看他们有没有什么想法,如果有解决方案我也会更新这篇文章。


尝试的其他故障排除步骤:

我找到了一个帖子,我试图解决这个问题https://subversion.open.collab.net/ds/viewMessage.do?dsForumId=4&dsMessageId=436703。似乎我的 Tortious SVN 可能是因为它首先被安装而导致的问题。

我已经卸载了 Tortoise 和 CollabNet,然后首先重新启动了已安装的 CollabNet,然后是 Tortoise。安装 TortoiseSVN 时,我没有选择“命令行客户端工具”。然后我不得不将 GNU Diff 放回系统路径的开头。在那之后,我尝试这样做rbt post并得到了同样的错误。然后我修改了 Tortoise SVN 安装以包含command line client tools,然后再试一次,仍然得到相同的错误消息。

Jam*_*vec 6

在经历了很多挫折之后,我们找到了问题所在。我们在机器上有几个不同的差异,GNU 差异以及 collab net 附带的差异(我们用于 svn)。

Collab net 在其目录中有 svn.exe。在执行 a 时,where diff我能够看到路径和顺序是正确的,其中 GNU diff 显示在 CollabNet 的 diff 之前。但是,在运行命令时使用了 CollabNet 的 diff,因为 collab net diff 与 collab net 的 svn.exe 位于同一目录中。这意味着当操作系统查找 diff.exe 时,它​​首先检查 svn.exe 所在的本地目录,然后是系统路径。

话虽如此,在 collab 网络文件夹中重命名“diff.exe”将允许引用 gnu diff,从而解决了问题并使其rbt post正常工作。