我已经在II7 7上运行了hgweb(在Windows Server 2008上)。 Web界面工作,我可以在那里查看,拉取和克隆存储库。但我不能推,这样做在“搜索更改”后立即给我一个502错误。使用--debug将最后几行显示为:
sending unbundle command
sending 622 bytes
HTTP Error: 502 (Bad Gateway)
我使用TortoiseHG进行推送,但使用mercurial命令行时结果相同。
我已按照此处的教程:http://www.sjmdev.com/blog/post/2011/03/30/setting-mercurial-18-server-iis7-windows-server-2008-r2.aspx来设置hgweb。
答案 0 :(得分:3)
看起来像一个老问题,但有人必然会再遇到它。我接近在墙上绘制一个黑色圆圈......无论如何,我们的问题就是中央存储库的创建方式。我们从BitBucket克隆它,同时作为本地管理员远程连接到机器。
问题发生在[Repository] .hg文件夹中。您需要为其设置正确的权限。尝试添加Everyone - >用于测试目的的完全权限。请确保您之后将其更改为专用网络登录或相应的本地帐户。
我看到了完全相同的行为 - 即使推送工作正常,除了在所有时间之后获得Bad Gateway之外。设置了正确的权限后,问题就消失了。
现在考虑一下,可能最好的解决方案是将每个使用repo的网络登录添加到机器用户,然后将.hg文件夹的访问权限设置为本地用户。
希望它有所帮助。
答案 1 :(得分:0)
尝试使用ISAPI模块方法而不是执行phython.exe as documented here的CGI。这里还有另一个related, and possibly duplicate question。
答案 2 :(得分:0)
查看hgweb.config文件中的“Push_ssl”设置。
我得到了同样的错误(我的设置为'*'),并且能够通过完全删除线来解决它。当然,这使得Mercurial的安全性有所降低,但是当我调查在服务器上正确配置SSL时,它让我可以解决配置问题(现在)。
您可能还需要查看“Allow_push”设置,以便了解更多错误(或者再次查看您的授权)。
注意:至少在我的情况下,'push_ssl = false'是不够的,因为这导致了进一步的错误(授权失败)。
(同样,这只是一个临时解决方案,直到可以正确保护服务器。)
答案 3 :(得分:0)
可能出于不同的原因,获得有关错误运行的更多详细信息
hg push --config ui.usehttp2 = true --config ui.http2debuglevel = info
例如,由于代理服务器或者在Mercurial Web Server"忘记"关于它需要服务的存储库:如果您使用TortoiseHg工作台,请转到Workbench UI,Repository - >启动Web服务器,确保您的存储库位于服务的存储库列表中。
答案 4 :(得分:0)
尝试在.hg / hgrc中使用https而不是http,我已为code.google.com解决此问题。
答案 5 :(得分:0)
我遇到了这个问题,问题最终导致服务器磁盘空间不足。