托管多个存储库,每个存储库具有不同的访问控制

托管多个存储库,每个存储库具有不同的访问控制

我们需要托管一系列 Mercurial 存储库。为了安全起见,我们将在 Apache 中使用 SSL 加密和 htpasswd 访问(必需)。我测试了一个存储库,并使用hgwebdir.cgihgweb.config来定义存储库路径以及allow_pushdeny_push指令,但这种测试设置只会导致更多问题:

我看不出有任何方法可以为每个单独的存储库创建不同的允许/拒绝推送组?更重要的是,我看不出有任何方法可以这样做allow_pull deny_pull— 这非常重要,因为每个存储库都有一组不同的用户,这些用户应该被允许读取或写入。我们希望htpasswd为所有用户保留一个文件。

答案1

我认为您可能忽略的是,在每个存储库内创建一个.hg/hgrc文件是完全允许的,并且这些文件可以包含allow_pushallow_read条目。

答案2

Mercurial 服务器是托管多个 Mercurial 存储库的绝佳方式,每个存储库具有不同的访问要求。

如果你认为这不适合你,那么你应该看看访问控制列表Mercurial 的扩展。

答案3

我认为最好的方法allow_pulldeny_pull使用 htpasswd 文件设置 httpd 身份验证。您可以使用mod_auth此处的任何机制来允许每个用户拉取或推送。

您可能还考虑使用 SSH 传输进行托管,因为这将使您能够更细粒度地控制访问,但设置会稍微复杂一些。

更多信息请见在 Mercurial wiki 中

相关内容