reposettings is an extension for Mercurial that allows configuration of ui and web stanzas for individual repositories from one config.

For example:

base = /srv/hg

[ui path/to/repo]
contact = John Doe <john.doe@widgets.inc>
description = Widget factory

[web path/to/repo path/to/another/repo]
allow_read = joe, jane

The path specified will match any repositories at or below that directory. Paths are parsed with a Unix shell-like syntax (using shlex), allowing escaped characters and quoted values.

Sections marked with "(global)" will have their settings added to repository-specific sections. So for example, given the following:

allow_read = admin

[web (global)]
allow_push = admin

[web path/to/repo]
allow_read = jack
allow_push = jack

The effective settings become:

[web path/to/repo]
allow_read = jack
allow_push = admin, jack


  • This extension requires Mercurial 1.1 or newer.
  • This extension doesn't use hgwebdir's configuration file. If you're trying to apply settings to an hgwebdir instance, set HOME in the runner script and put your settings in $HOME/.hgrc.


Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.