Mercurial > hg
view hgext/hooklib/__init__.py @ 49520:eb02decdf0ab
dirstate-v2: skip evaluation of hgignore regex on cached directories
By making the computation of [has_ignored_ancestor] lazy we're eliding
its computation in the common case when none of its descendants have
changed on disk.
On a ~400k files repo, with a cached status, we saw a ~64% reduction
in CPU time, resulting in a speedup of ~10-15% (on ZFS), and a speedup
of ~38% of XFS (XFS has faster stat operations for some reason).
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 10 Oct 2022 14:48:39 +0100 |
parents | 6000f5b25c9b |
children | f4733654f144 |
line wrap: on
line source
"""collection of simple hooks for common tasks (EXPERIMENTAL) This extension provides a number of simple hooks to handle issues commonly found in repositories with many contributors: - email notification when changesets move from draft to public phase - email notification when changesets are obsoleted - enforcement of draft phase for all incoming changesets - enforcement of a no-branch-merge policy - enforcement of a no-multiple-heads policy The implementation of the hooks is subject to change, e.g. whether to implement them as individual hooks or merge them into the notify extension as option. The functionality itself is planned to be supported long-term. """ from . import ( changeset_obsoleted, changeset_published, ) # configtable is only picked up from the "top-level" module of the extension, # so expand it here to ensure all items are properly loaded configtable = {} configtable.update(changeset_published.configtable) configtable.update(changeset_obsoleted.configtable)