multirepo web serving question
Jordan Breeding
jordan.breeding at mac.com
Wed Aug 31 20:49:24 UTC 2005
On Aug 31, 2005, at 12:28 , Bryan O'Sullivan wrote:
> On Wed, 2005-08-31 at 08:00 -0500, Jordan Breeding wrote:
>
> Good timing. I just wrote a wiki page on this last night:
>
> http://www.selenic.com/mercurial/wiki/index.cgi/PublishingRepositories
>
>
>> 1) in this setup how do you get the description and contact
>> information? do these need to be in .hg/hgrc?
>>
>
> Yes.
>
>
>> is there something
>> special that I am missing on either the hg or the apache side to make
>> the links to the repos actually work?
>>
>
> Yes, but it's not obvious. See the bottom of the wiki page - you need
> to get Apache to route every request to that area through the
> hgwebdir.cgi script, so that it will set PATH_INFO properly.
>
> <b
>
>
I was trying to set mine up in a userdir environment so that <server>/
~jordan/hg will show the repos and clicking on them will work. I
have failed in my attempt, here is what I have done so far:
The repo is at /Users/jordan/hg_repos/mercurial (only one right now).
Relevant section of the apache config:
<Directory "/Users/jordan/Sites/">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
DirectoryIndex hgwebdir.cgi
AddHandler cgi-script .cgi
RewriteEngine on
RewriteRule ^hg(/repos/.*)$ /Users/jordan/Sites/hg/hgwebdir.cgi$1
</Directory>
My hgwebdir.cgi script (at /Users/jordan/Sites/hg/hgwebdir.cgi):
#!/usr/local/bin/python
#
# An example CGI script to export multiple hgweb repos, edit as
necessary
import cgitb, sys
cgitb.enable()
#sys.path.insert(0, "/path/to/python/lib") # if not a system-wide
install
from mercurial import hgweb
# The config file looks like this:
# [paths]
# virtual/path = /real/path
# virtual/path = /real/path
# Alternatively you can pass a list of ('virtual/path', '/real/path')
tuples
# or use a dictionary with entries like 'virtual/path': '/real/path'
repos = {};
repos["repos/mercurial"] = "/Users/jordan/hg_repos/mercurial";
h = hgweb.hgwebdir(repos);
h.run()
This is the error I get when clicking on the repo in the listing:
Not Found
The requested URL /Users/jordan/Sites/hg/hgwebdir.cgi/repos/mercurial
was not found on this server.
Any ideas?
Thanks,
Jordan
More information about the Mercurial
mailing list