1

我正在尝试使用reviewboardwith SVN。办公室中的其他人已经完成了系统设置并能够发布(第一次运行的 VM 的副本)。据我所知,我已经将我的系统设置与他们的系统设置进行了比较,事情看起来都一样。

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

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

我已经让我的 svn 客户端和 gnu diff 我的系统路径中的前两件事: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 软件基金会。该软件由许多人的贡献组成;有关详细信息,请参阅 NOTICE 文件。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. 这是免费软件;查看复制条件的来源。没有保修;甚至不考虑适销性或特定用途的适用性。

关于我应该检查什么或我缺少什么的任何想法或想法?我也要去谷歌小组发帖,看看他们是否有任何想法,如果他们有解决方案,我也会更新这篇文章。


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

我找到了一个帖子,我试图解决这个问题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,然后再次尝试,仍然得到相同的错误消息。

4

2 回答 2

6

经过一番挫折,我们解决了这个问题。我们在机器上有几个不同的 diff,GNU Diff 以及 collab net 附带的 diff(我们用于 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 net文件夹中重命名“diff.exe”将允许引用gnu diff,从而解决了问题并允许rbt post正常工作。

于 2014-06-30T16:40:36.653 回答
0

此外,这可能对某些人有帮助。这可能是由于 svn 试图区分所有内容,甚至是不存在的文件。=> 进入tortoisesvn设置,选择“常规”点击“Subversion配置文件”前面的“编辑”按钮。在打开的配置文件中确保“diff-ignore-content-type = no”

于 2018-08-03T03:59:54.490 回答