6

我最近将我的 subversion 客户端升级到 1.8.0,即使我们公司的 subversion 服务器是 1.6.11,因为我检查的所有地方似乎它们应该是兼容的。

基本命令工作正常(更新、提交等)。问题是当我尝试执行一些更复杂的命令时,比如重新定位,或者我尝试从 maven release-plugin 生成一个版本。在这种情况下,我会收到以下错误:

[ERROR] svn: E175002: Unable to connect to a repository at URL 'https://mycompaniesserver.com/svn/repo/trunk/project'
[ERROR] svn: E175002: OPTIONS request on '/svn/repo/trunk/project' failed: 503 Service Unavailable

我的同事使用从 1.6 到最新 1.7 的一系列客户端似乎没有得到。

我的猜测是 Subversion 1.8 发送了一些旧版本的客户端没有发送的 HTTP OPTIONS 命令,并且 subversion 服务器的防火墙或代理(不是 subversion 本身)正在拒绝它们。

除了恢复到较旧的颠覆客户端(因为我已经将所有项目都转换为 1.8 格式)之外,有什么方法可以防止发送这些较新格式的消息?或者是否有任何明确的规则需要添加到颠覆服务器的防火墙以便 1.8 客户端可以工作?

编辑:我回到了 1.7.x 客户端,一切正常,但我真的很想找到一种方法,可以在不涉及服务器系统管理员的情况下使用 1.8 客户端。

4

7 回答 7

2

我想,您可以阅读Subversion 1.8 发行说明中的​​“基于 neon 的 HTTP 客户端支持已被删除”一章,注意 Skelta|Bulk 模式的服务器端和客户端配置选项,并从表中测试客户端-服务器模式(讨论与您的网络管理员一起使用)-您可以使用 1.8 从批量迁移到 skelta

另一个版本 - 中间块中的代理|防火墙

无法通过 URL 连接到存储库

svn-client 的新更改活动

当使用 Kerberos 或 NTLM 身份验证时,...为每个 HTTP 请求和响应添加 2 - 4 KB 标头

于 2013-07-11T10:20:40.170 回答
2

在通过 https 代理连接到 subversion 服务器 1.5.1 时,我通过 tortoisesvn 1.8.0 使用 subversion 客户端 1.8.0 遇到了同样的问题。通过使用较旧的颠覆客户端版本解决了这个问题。

于 2013-07-08T15:51:30.650 回答
1

IIRC 这是 1.8.0 中的一个错误。安装较新的 1.8.x 版本之一。

于 2013-10-15T12:39:43.020 回答
1

有这个问题。与设置无关,只是最新版本的 Tortoise 不适用于我服务器上安装的 SVN 版本。我下载了之前版本的 Tortoise,问题就解决了。

(有 1.8 版,下载 1.7 并且可以正常工作。有趣的是;但是,将服务器上的 SVN 升级到 1.8 Tortoise 1.8 后仍然无法正常工作,我只能连接 Tortoise 1.7。

于 2014-04-11T06:03:03.443 回答
1

作为另一个数据点,我在通过 http 从 1.8 客户端与 1.6 服务器通信时遇到问题。有一些狡猾的代理声称符合 http 1.1。虽然 Subversion 确实推动了 http 协议。

一个 1.7 的客户端有两个 http 库:WebDAV 和 Serf。WebDAV 在 1.8 中被删除,只剩下 Serf http 库。

我必须在我的 svn 1.8 客户端的配置文件中明确关闭分块传输。然后一切正常(呃,除了包含新文件的任何签入,叹息!)。

请参阅1.8 中的 Known Issues 中的第一个条目,并http-chunked-requests = no在您的~/.subversion/servers文件中阅读

于 2015-07-22T16:06:23.423 回答
0

我相信这个问题可能已经在其他地方得到了回答。然而最近在处理我的项目时,我遇到了同样的问题并应用了其他地方给出的解决方案,即评论

在此处输入图像描述

图片中上面给出的行对我不起作用,因为它已经被注释掉了。仅供参考,该文件位于本地系统 强文本C:\Documents and Settings_username_\Application Data\Subversion\servers中的以下位置

我们使用 Subversion eclipse 插件来完成所有操作。它发生的原因是因为 subversion 请求正在被代理,它不支持一些 HTTP 方法。

作为解决方案,我做了以下。在你的 Eclipse IDE 中

转到窗口 > 首选项 > 网络连接。如果“Active Provider:”中的值不是 Direct,则将其更改为 Direct。重试您尝试的操作,它应该像魅力一样工作。:-)

于 2014-01-08T13:35:37.663 回答
0

就我而言,正在使用以下解决方案:

  1. %APPDATA%\Subversion\servers
    
  2. 在以下行的末尾添加广告:

      http-chunked-requests = no
    
于 2016-04-26T07:50:57.407 回答