合并后无法将 jar 文件提交到 svn:502 'Bad Gateway'

Cannot commit jar file to svn after merge: 502 'Bad Gateway'

我们在客户端使用 visualsvn 和 tortoiseSVN 来控制二进制文件的版本。即当我们要测试一个项目时,测试分支与构建分支合并。这实质上是将 jar 文件更新为更新的版本。

出于某种原因,我无法提交现在合并的测试分支,我收到 502 'Bad Gateway' 错误。 我可以提交一些更新的文件,我已经删除了旧的 jar 文件,但我无法提交新的 jar。

我得到的错误 指向构建 分支,而不是测试分支,我认为这可能是原因。我尝试删除有问题的文件并将其替换为构建中的副本(某种手动合并)。但是我得到了同样的错误。

Commit failed (details follow):
Unexpected HTTP status 502 'Bad Gateway' on
'/svn/binaries/!svn/rvr/11730/myProject/branches/build/newestversion.jar'

编辑: 该错误与合并有关。撤消 add 后,我将 jar 文件复制到测试目录中,添加它并提交,没有任何问题。

错误传播:在将暂存与测试合并后,我得到与上面相同的错误,但是:

'/svn/binaries/!svn/rvr/11737/myProject/branches/tst/newestversion.jar'

HTTP 状态代码 502 是服务器端错误:

RFC 7231 section 6.6.3:

The 502 (Bad Gateway) status code indicates that the server, while acting as a gateway or proxy, received an invalid response from an inbound server it accessed while attempting to fulfill the request.

当您检查二进制文件时,您和 svn servern 之间的服务器可能超时,因为检查时间太长。所以你应该检查svn服务器以及你和svn服务器之间的任何服务器。

根据 support@visualsvn.com 的调查,根本原因是 %VISUALSVN_SERVER%conf\httpd-custom.conf 文件中的以下行:

RequestHeader edit Destination ^https http early

删除此行可解决问题。

顺便说一句,我猜想添加该行是为了实现从 HTTP 到 HTTPS 的自动重定向。使用现代 VisualSVN Server 版本,您可以通过 VisualSVN Server Manager 控制台启用此重定向。因此,无需将该行添加到 conf 文件中。

您可以按照以下步骤操作:

  1. 启动 VisualSVN 服务器管理器 控制台。
  2. 单击操作 |属性.
  3. 单击网络 选项卡。
  4. Select 自动将 HTTP 重定向到 HTTPS(侦听端口 80) 选项。
  5. 单击应用

在我的例子中,我使用的是 RouixSVN 并且我只需要 清除 SVN authentication 我电脑上的数据并再次登录,它工作了。希望对其他人有帮助。

在 Ubuntu 系统上,这是通过删除来完成的:

~/.subversion/auth

在 Windows 上:

%APPDATA%\Subversion\auth 

我解决了这个问题。我看到的问题是分支要求 SVN COPY 发生,这是在 HTTP 中完成的,在 HTTPS 下中断。所以我创建了一个 localhost:9005 虚拟主机 运行 DAV,添加了 localhost:9005 监听器,并将我的 SSL 虚拟主机更改为代理 localhost:9005.

... SSLCertificateFile /etc/ssl/certs/server.cer SSLCertificateKeyFile /etc/ssl/certs/server.key SSLCertificateChainFile /etc/ssl/certs/domain.cer
ProxyRequests           On
ProxyPreserveHost       On

ProxyPass           /svn    http://localhost:9005/svn
ProxyPassReverse    /svn    http://localhost:9005/svn