Skip to content
/ hgweb Public

web interface to mercurial, limbo, from mercurial

Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



16 Commits

Repository files navigation

# summary

this package implements a web frontend to hgfs, the mercurial file system.
html pages are generated for the various views on mercurial repositories.

the following pages are provided:

- last commit message for each repository
- links to often used files/information for a given repository, such man
  pages it contains, .b & .m files, the latest .tgz, command to clone the
  repository, etc.
- rss feed of the previous two views
- diff between any two revisions of a given repository
- the man2html-formatted manual page of a given unprocessed man page in
  a given repository, for a given file
- last n commit messages for a given repository, in short or long format

# download

the homepage of this software is at:

# install

make sure the packages "web", "scgid" and "textmangle" installed (see$packagename).

make sure $ROOT is set.  now type "mk" and then "mk install" to
compile and install.  next, install the files in /lib into your
inferno installation.

to generate diffs for file trees, hgweb uses a modified version of
inferno's diff(1).  it is called ndiff and can be created by applying
the patch ndiff.diff or ndiff.udiff (in unified format) to inferno's
appl/cmd/diff.b (be sure to copy that to the file name ndiff.b
before running patch).  the patch adds flag -n (which only does
anything when -r is specified too), which treats absent files as
/dev/null when calculating the diff.  this shows the contents of
added and removed files.

# run

running this can become quite complicated.  first of all, hgweb needs
to be started by scgid, see its documentation for usage information.
second, hgweb assumes /n/hg holds all repositories.  multiple hg/fs'en can
easily be exported by styxlisten, and mounted using "mount -P", allowing
you to restart the hg/fs'en+styxlisten without restarting the scgid.

hgweb also links (on the webserver) to files named "../hg/$repository".
the links in /lib/template/hgweb/* may have to be changed.  also, files
in that directory contain instructions specific to my own installation,
so be sure to look through them.

# licence & author

this code is in the public domain.  the code is written by mechiel
lukkien, reachable at

diff.b (to which ndiff.diff an ndiff.udiff can be applied) is copyrighted
by vita nuova.  the modification is in the public domain.

# todo

- the url's should be more repo-centric, not the current function-centric.
- add a view that, given a repo+path, lists the revisions the file was
  changed in.  one revision can have its changelog shown in full.
- allow seeing patches files (not dirs, that is harder) of a revision too?
  need to replace max 1 absent file by /dev/null.
- better error handling.  the wrong error reasons might be given sometimes.


web interface to mercurial, limbo, from mercurial






No releases published


No packages published