Bundled Hooks
Mercurial ships with several bundled hooks. You can find them in the hgext directory of a Mercurial source tree. If you are using a Mercurial binary package, the hooks will be located in the hgext directory of wherever your package installer put Mercurial.
acl—Access Control for Parts of a Repository
The acl
extension
lets you control which remote users are allowed to push changesets to
a networked server. You can protect any portion of a repository (including
the entire repo), so that a specific remote user can push changes that
do not affect the protected portion.
This extension implements access control based on the identity of the user performing a push, not on who committed the changesets they’re pushing. It makes sense to use this hook only if you have a locked-down server environment that authenticates remote users, and you want to be sure that only specific users are allowed to push changes to that server.
Configuring the acl hook
In order to manage incoming changesets, the
acl
hook must be used as a pretxnchangegroup
hook. This lets it see which
files are modified by each incoming changeset, and roll back a group
of changesets if they modify “forbidden” files. For
example:
[hooks] pretxnchangegroup.acl = python:hgext.acl.hook
The acl
extension
is configured using three sections.
The acl
section
has only one entry, sources
, which
lists the sources of incoming changesets that the hook should pay
attention to. You don’t normally need to configure this
section.
serve
Get Mercurial: The Definitive Guide now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.