Using the --web-conf
parameter you can use an hgwebdir configuration file which specifies multiple repositories from the one URL.
I've actually found that if you don't want to mess around with setting up hgwebdir on apache, a good solution is to use mercurial-server to serve (push-pull) repositories over ssh (certificates only) and use hg serve
to expose a read-only web view with the graph log, etc. Obviously this assumes that the web view isn't going to have a huge amount of traffic - if you need that, take the time to set up apache with mod_wsgi
.
For example, my personal server (using mercurial-server with a home directory of /home/hg
) has an /etc/init.d/hgserve
which invokes something like:
hg serve --daemon --port 8000 --web-conf /home/hg/hgweb.config --accesslog /var/log/mercurial/access.log --errorlog /var/log/mercurial/error.log
hgweb.config just contains:
[paths]
repos = /home/hg/repos/*
This then displays a list of every repository it finds under /home/hg/repos
. If I want to hide any (e.g. the hgadmin
repo that mercurial-server uses) I just add the following to the repo's hgrc
:
[web]
hidden = True
As the the files list - you might be able to get somewhere by modifying the templates and pass the --template
parameter to hg serve
. In your mercurial libraries will be the mercurial/templates
directory - this contains all the templates that hg serve
uses - copy it somewhere and then modify. The templates for the various web pages are in the mercurial/templates/paper
directory (and mercurial/templates/static
contains stylesheets and javascript).
Unfortunately the only modification I've made is to add a dotted line linking each node in the graph to its text (which I find makes the graph much more readable) so I don't know if you'll be able to do anything for the file list with just the templates.