基本上,我如何在 Mercurial Repository 中做到这一点?
目前,我已将 Apache 中的位置配置为需要 SSL、使用基本身份验证并需要有效用户。这有点多,因为我想允许匿名拉取,只需要推送者的基本身份验证 - 现在需要用户/密码才能在 Web 浏览器中简单地查看存储库。我希望始终需要 SSL,并且真的不想两次托管同一个存储库(对于仅拉取具有不同的位置,而对于经过验证的推送具有另一个位置)。
基本上,我如何在 Mercurial Repository 中做到这一点?
目前,我已将 Apache 中的位置配置为需要 SSL、使用基本身份验证并需要有效用户。这有点多,因为我想允许匿名拉取,只需要推送者的基本身份验证 - 现在需要用户/密码才能在 Web 浏览器中简单地查看存储库。我希望始终需要 SSL,并且真的不想两次托管同一个存储库(对于仅拉取具有不同的位置,而对于经过验证的推送具有另一个位置)。
Ches Martin有一个不错的博客,详细介绍了他如何根据您的要求设置 Mercurial。
来自 Apache 配置的这个片段是允许匿名拉取(或浏览,如果通过 hgweb 发布)所需的一部分,但仍然需要推送通行证。
你要找的可能是 Apache 的LimitExcept指令。就像是:
因此,除了 GET 请求之外,其他任何事情都需要用户/通行证。但我不了解 Mercurial,也不知道如何
hg push
完成。如果是 POST 请求,就可以了,但可能也是需要 POST 才能拉取。通过要求 SSL 进行匿名拉取,您的问题变得更加困难,我不知道您这样做的目的是什么。如果任何人都可以在没有身份验证的情况下进行拉取,那么任何人都可以通过询问来查看所有数据,从而使嗅探电线完全多余,因此对其进行加密毫无意义。
我强烈建议采用更简单的方法,将匿名分发放在 http 上,并保存 https 以进行推送。