Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
# 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