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
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.