如何configuration使用apache和hgweb的mercurial访问控制?

我已经build立了一个mercurial回购服务在OS X上使用apache + wsgi + hgweb。

现在完全开放给谁在我的服务器上绊倒正确的端口号..

我如何设置它,以便只有拥有用户名和密码对的人才可以从回购站拉出和/或推送?

我知道如何使用ssh很容易地实现这一点,但在这种特殊情况下,要求解决scheme不需要在机器上为每个想要访问repo的人员定义完整的用户帐户。

假设你已经有了VirtualHost,并且在你的hgweb.wsgi放置hgweb.wsgi ,你需要在该目录下添加以下内容:

 AuthType Basic AuthName "Mercurial Repositories Restricted Access" AuthUserFile /path/to/hg_passwords_file Require valid-user 

接下来,您应该使用htpasswd工具创buildhg_passwords_file如下所示:

 htpasswd -c hg_passwords_file username 

为第一个用户(并按要求input密码)。

对于其他用户,省略-c将它们添加到文件而不是重新创build文件。

在“发布Mercurial存储库”文档的“添加身份validation”部分中给出了用于身份validation的Apacheconfiguration示例。 有两个常见的例子(限制所有的访问,或只是推操作),甚至使用htpasswdhtdigest工具(这是维护密码文件所需的)的例子。

使用WSGI而不是简单的CGI(或任何其他方法)不会影响这部分设置 – 只需在<Location url-path>语句中指定用户可见的URLpath即可。