我们将需要托管一系列 Mercurial 存储库。为了安全起见,我们将在 Apache 中使用 SSL 加密和 htpasswd 访问(必需)。我测试了一个存储库并使用hgwebdir.cgi
并使用hgweb.config
来定义存储库路径和allow_push
anddeny_push
指令,但是这个测试设置只会导致更多的问题/问题:
我看不到任何方法可以为每个单独的存储库创建不同的允许/拒绝推送组?更重要的是,我看不到任何方法allow_pull
deny_pull
——这非常重要,因为每个存储库都有一组不同的用户,他们应该被允许读取或写入。我们希望htpasswd
为所有用户保留一份文件。
我认为您可能缺少的是完全允许
.hg/hgrc
在每个存储库中创建一个文件,并且这些文件可以包含allow_push
和allow_read
条目。Mercurial-server是托管许多 Mercurial 存储库的好方法,每个存储库具有不同的访问要求。
如果您认为这不适合您,那么您应该查看 Mercurial 的ACL扩展。
我认为最好的方法
allow_pull
是deny_pull
使用 htpasswd 文件设置 httpd 身份验证。您可以使用mod_auth
此处的任何机制来允许每个用户拉或推。您还可以考虑使用 SSH 传输进行托管,因为这将为您提供更精细的访问控制,但代价是设置稍微复杂一些。
更多信息可以在 Mercurial wiki中找到。