Mercurial is a distributed revison control system developed by Matt Mackall. Ikiwiki supports storing a wiki in a mercurial repository.

Ikiwiki can run as a post-commit and/or incoming hook to update a wiki whenever commits or remote pushes come in. When running as a cgi with Mercurial, ikiwiki automatically commits edited pages, and uses the Mercurial history to generate the RecentChanges page.

Example for a .hg/hgrc file in $SRCDIR:

[hooks]
post-commit = ikiwiki --setup /path/to/ikiwiki.setup --post-commit
incoming = ikiwiki --setup /path/to/ikiwiki.setup --post-commit

Do not use commit or precommit hooks or ikiwiki will run into a dead lock when committing in $SRCDIR. Also note that --post-commit and not --refresh must be used to avoid dead locking when editing the pages via CGI interface.

See also todo/mercurial