Mercurial:为什么在推送到我可以在浏览器中访问其URL的存储库时会出现404错误?

Mik*_*ras 19 mercurial push http-status-code-404

我有一个Mercurial存储库,如果我在浏览器中导航它,我可以看到很好,但是当我尝试执行推送时,我的默认路径设置为我在浏览器中访问的相同URL,我得到:

abort: HTTP Error 404: Not Found
Run Code Online (Sandbox Code Playgroud)

我推送的URL应该以某种方式不同吗?

Aar*_*sen 12

我们突然开始在我们的主Mercurial存储库上收到此错误,该存储库在Windows 2008上的IIS下托管. 当您的存储库有太多头时,Mercurial POSTs查询字符串的长度超过IIS选择处理.

您可以通过查看IIS日志中失败请求的子状态代码来判断(通常是正常HTTP状态代码之后的数字).在这种情况下,IIS返回15的子状态,这意味着查询字符串太长.不要忘记检查您的子状态代码!

要解决此问题,您需要增加IIS的maxiumum查询字符串长度:

 # Get the current query string size limit
 c:\windows\system32\inetsrv\appcmd list config /section:requestFiltering -text:requestLimits.maxQueryString

 # Set the new query string size limit
 c:\windows\system32\inetsrv\appcmd set config /section:requestFiltering /requestLimits.maxQueryString:<NEW SIZE>
Run Code Online (Sandbox Code Playgroud)


cam*_*ter 12

"内容太大"就是我所拥有的.转到IIS日志并查找"404 13".

要修复它,请在IIS管理器下,转到"请求筛选"选项,然后选择"标题"选项卡.

然后转到右侧的"编辑功能设置".然后为"允许的最大内容(字节数)"字段选择一个非常大的数字.

这解决了我的问题.


Von*_*onC 5

这是否与此配置类似,hgweb.config需要正确配置:

/ = /home/my_username/hg/**
Run Code Online (Sandbox Code Playgroud)

(当时有两颗星)

或者它是http与https问题

对于https,您需要一个正确的.hgrc文件,否则您也可能会收到404错误.
请参见.hg/hgrc文件手册页.

[ui]

username = my.address@myco.com

password = mypassword

schemes = https

[paths]

default = https://myURL.kilnhg.com/Repo/Repositories/Groups/myrepo
Run Code Online (Sandbox Code Playgroud)