配置phabricator以允许推送http

时间:2014-06-18 09:37:39

标签: http mercurial phabricator

我想配置Phabricator,这样我就可以推送http。

现在我把它配置为ok,在存储库页面中出现了克隆它的命令,并在" hosting"配置我已将其设置为读取/写入http(如下图所示)。此外,我已将diffusion.allow-http-auth配置为true,并为我的用户配置VCS Password

Status of the repository: all ok

Hosting - Server over HTTP: Read/Write

我已正确完成了拉动,并添加了对此本地克隆的更改。

但是当我尝试推送初始历史记录/提交时,hg显示以下错误:

% hg push http://*********/diffusion/W/web/
pushing to http://*********/diffusion/W/web/
http authorization required
<--- Credentials Ok -->
realm: Phabricator Repositories
abort: operation not supported over http

我做错了什么? Http只能用来拉?

注意:我已经知道最好使用ssh,但我无法将服务器配置为可以通过其他无法更改的策略来使用它。此外,此问题可能与https://stackoverflow.com/questions/22485732/git-repositories-that-allow-push-pull-over-http

有关

2 个答案:

答案 0 :(得分:0)

在“扩散用户指南”中,Configuring HTTP部分,您可以看到提及的一些要求(在描述中未反映

  

如果您打算使用经过身份验证的HTTP,则需要在Config中设置diffusion.allow-http-auth。如果您不打算使用HTTP,或者计划仅使用匿名HTTP,则可以禁用此设置。

     

如果您打算使用经过身份验证的HTTP,则还需要在&#34;设置&#34;中配置VCS密码。 - &GT; &#34; VCS密码&#34;。这是一个与主Phabricator密码不同的密码,主要是出于安全考虑。

答案 1 :(得分:0)

影响我的是服务器中的mercurial版本太旧了。我已将其更新为HG 3.0.1,现在我可以通过http。

从Phabricator中的task开始,不同版本的mercurial发生了这种情况:

  • 版本1.4到1.8将拒绝带有中止的推送:不支持http。
  • 的操作
  • 版本1.9到2.1接受推送。
  • 版本2.2在尝试推送时溢出此错误消息(并且内容不会被推送)。
  • 版本2.3到3.0接受推送。

您可以在Phabricator task T3046中看到相关任务。