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
- 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
the homepage of this software is at:
make sure the packages "web", "scgid" and "textmangle" installed (see
make sure $ROOT is set. now type "mk" and then "mk install" to
compile and install. next, install the files in /lib into your
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.
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 email@example.com.
diff.b (to which ndiff.diff an ndiff.udiff can be applied) is copyrighted
by vita nuova. the modification is in the public domain.
- 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.