合并后无法将 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 是服务器端错误:
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 文件中。
您可以按照以下步骤操作:
- 启动 VisualSVN 服务器管理器 控制台。
- 单击操作 |属性.
- 单击网络 选项卡。
- Select 自动将 HTTP 重定向到 HTTPS(侦听端口 80) 选项。
- 单击应用。
在我的例子中,我使用的是 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
我们在客户端使用 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 是服务器端错误:
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 文件中。
您可以按照以下步骤操作:
- 启动 VisualSVN 服务器管理器 控制台。
- 单击操作 |属性.
- 单击网络 选项卡。
- Select 自动将 HTTP 重定向到 HTTPS(侦听端口 80) 选项。
- 单击应用。
在我的例子中,我使用的是 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.cerProxyRequests On
ProxyPreserveHost On
ProxyPass /svn http://localhost:9005/svn
ProxyPassReverse /svn http://localhost:9005/svn