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

我们将需要托pipe一系列Mercurial存储库。 为了安全起见,我们将在Apache中使用SSLencryption和htpasswd访问(必需)。 我testing了一个存储库,并使用hgwebdir.cgi并使用hgweb.config来定义存储库path以及allow_pushdeny_push指令,但是这个testing设置只会导致更多的问题/问题:

我没有看到任何方式为每个单独的存储库做一个不同的允许/拒绝推送组? 重要的是,我没有看到allow_pull deny_pull方法 – 这是非常重要的,因为每个存储库都有一组不同的用户应该被允许读取或写入。 我们想为所有用户保留一个htpasswd文件。

我认为你可能会遗漏的是,在每个版本库中创build一个.hg/hgrc文件是完全可以允许的,这些文件可以包含allow_pushallow_read条目。

Mercurial服务器是一个很好的方式来托pipe许多Mercurial回购每个回购不同的访问要求。

如果你认为这不适合你,那么你应该看看Mercurial的ACL扩展。

我认为allow_pulldeny_pull的最好方法是使用htpasswd文件设置httpdauthentication。 你可以在这里使用任何mod_auth机制来允许每个用户拉或推。

您也可以考虑使用SSH传输进行托pipe,因为这会以更复杂的设置为代价,从而更好地控制访问。

更多信息可以在Mercurial wiki中find。