Mercurial Server on Apache/Windows

后端 未结 3 419
耶瑟儿~
耶瑟儿~ 2021-02-01 11:09

I\'m searching for info to setup a Mercurial Server for Windows (7 or XP) with an Apache (xampp if it is useful to know it) with the Push Model, just like in this question but m

3条回答
  •  逝去的感伤
    2021-02-01 11:49

    I used the HgWebDir instructions:

    Here is my httpd.conf piece for the mercurial sites (slightly edited):

    
        ServerName hg.example.com
        DocumentRoot c:/apache_sites/hg
        RewriteEngine on
    
        RewriteRule ^/$ /public [R]
        RewriteRule ^/public(.*) /public/hgwebdir.cgi$1 [L]
        RewriteRule ^/private(.*) /private/hgwebdir.cgi$1 [L]
    
        # mod_alias alternative (pretty url's)
        
            Order allow,deny
            Allow from all
            AllowOverride All
            Options ExecCGI
            AddHandler cgi-script .cgi
        
        
            AuthType Digest
            AuthName "hg.example.com"
            AuthDigestProvider file
            AuthUserFile c:/apache_sites/hg/hgusers
            AuthGroupFile c:/apache_sites/hg/hggroup
            AuthDigestDomain /private/
            Require group owner
        
        
            AuthType Digest
            AuthName "hg.example.com"
            AuthDigestProvider file
            AuthUserFile c:/apache_sites/hg/hgusers
            AuthGroupFile c:/apache_sites/hg/hggroup
            AuthDigestDomain /public/
            
                Require group developer
            
        
    
        LogLevel debug
        ErrorLog "c:/apache/logs/hg-error.log"
        CustomLog "c:/apache/logs/hg-access.log" combined
        LogLevel debug
    
    # vim:se ft=apache:
    

    I also had to turn on a few modules for Auth Digest, etc.

    I put the hgwebdir.cgi in the root of the public and the private folders, and just put each of my hg repos in the repos subfolder under the appropriate folders.

    Apache authentication took care of my authorization.

    Then I just put a hgweb.config file in the same locations like this:

    [collections]
    repos = repos
    
    [web]
    allow_archive = bz2 gz zip
    style = gitweb
    baseurl = /public
    

    Updated Question

    The mercurial packages need to be on the PYTHON_PATH

    This answer gives more detail.

提交回复
热议问题