在 ubuntu 10.10 上提供 mercurial

在 ubuntu 10.10 上提供 mercurial

我读过大量的文章,但是我越努力,似乎就越偏离主题。

我正在尝试通过 HTTP 提供 mercurial 存储库。我将其与 redmine 一起使用。

我已经安装了 mercurial-server。我设置了一个无法从外部连接的存储库。当我尝试浏览该地址时,我可以看到我放在目录中的 index.html,但是当我使用 TortoiseHg 并浏览同一地址时,我得到了 404。我应该指向特定文件吗?我只尝试过像这样指向目录“http://www.example.com/hg/repo/“。

现在我只是试图拉取 repo,但如果可能的话,我希望能够暂时通过 HTTP 推送。

我将如何设置用户推送访问(通过 HTTPS)到存储库?用户是否必须存在于 Linux 机器上?这就是文章和教程让我感到困惑的地方,因为有些文章和教程提到了“mercurial 用户”,而其他文章和教程在为存储库提供服务的机器上创建了自己的用户。我想使用最简单的方案。

请尽可能详细地说明...我将非常感谢有关此问题的任何帮助!

答案1

在下面的工作示例中,您需要一个有效的身份验证才能进行拉取(请参阅“需要有效用户”)以及一个与私有组用户的有效身份验证才能进行推送(请参阅“限制指令”)。

<Directory /var/www/sources.XXXXXXXXx/www/private/>
RewriteEngine on
        RewriteBase /private
        RewriteRule ^$ hgwebdiri.cgi  [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule (.*) hgwebdir.cgi/$1  [QSA,L]
        Options FollowSymLinks +ExecCGI
        AddHandler cgi-script .cgi
        DirectoryIndex hgwebdir.cgi
        AllowOverride None
#       Order allow,deny
#       Allow from all
        AuthUserFile /etc/mercurial/hgweb.htpasswd
        AuthGroupFile /etc/mercurial/hgweb.htgroup
        AuthName "XXXXXXXXXXXXXx private sources"
        AuthType Basic
        Require valid-user
    <Limit POST PUT>
                Require group private
        </Limit>
</Directory>

答案2

不要忘记将“allow_push”放入全局 hgrc 或托管 repo 的 hgrc 文件中。

相关内容