1

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

现在我将其配置为 ok,在存储库页面中出现克隆它的命令,在“托管”配置中,我已将其设置为读/写到 http(如下图所示)。我还为我的用户配置了diffusion.allow-http-authtrue 和VCS Password

存储库状态:一切正常

托管 - 通过 HTTP 的服务器:读/写

我已经正确地提取了它,并添加了对这个本地克隆的更改。

但是当我尝试推送初始历史/提交时,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有关

4

2 回答 2

0

在 Diffusion 用户指南,配置 HTTP部分中,您可以看到提到的一些要求(未反映在您的描述中)

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

如果您打算使用经过身份验证的 HTTP,您还需要在“设置”->“VCS 密码”中配置 VCS 密码。出于安全原因,这与您的主要 Phabricator 密码不同。

于 2014-06-18T10:40:28.503 回答
0

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

从 Phabricator 中的任务来看,不同版本的 mercurial 会发生以下情况:

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

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

于 2014-07-01T15:09:47.480 回答