##// END OF EJS Templates
revset: use delayregistrar to register predicate in extension easily...
revset: use delayregistrar to register predicate in extension easily Previous patch introduced 'revset.predicate' decorator to register revset predicate function easily. But it shouldn't be used in extension directly, because it registers specified function immediately. Registration itself can't be restored, even if extension loading fails after that. Therefore, registration should be delayed until 'uisetup()' or so. This patch uses 'extpredicate' decorator derived from 'delayregistrar' to register predicate in extension easily. This patch also tests whether 'registrar.delayregistrar' avoids function registration if 'setup()' isn't invoked on it, because 'extpredicate' is the first user of it.

File last commit:

r19296:da16d21c stable
r27586:42910f9f default
Show More
extensions.txt
35 lines | 1.2 KiB | text/plain | TextLexer
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 Mercurial has the ability to add new features through the use of
extensions. Extensions may add new commands, add options to
existing commands, change the default behavior of commands, or
implement hooks.
Brodie Rao
help: refer to user configuration file more consistently...
r12083 To enable the "foo" extension, either shipped with Mercurial or in the
Python search path, create an entry for it in your configuration file,
like this::
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
[extensions]
foo =
You may also specify the full path to an extension::
[extensions]
myfeature = ~/.hgext/myfeature.py
Jordi Gutiérrez Hermoso
doc: make it easier to read how to enable extensions...
r19296 See :hg:`help config` for more information on configuration files.
Extensions are not loaded by default for a variety of reasons:
they can increase startup overhead; they may be meant for advanced
usage only; they may provide potentially dangerous abilities (such
as letting you destroy or modify history); they might not be ready
for prime time; or they may alter some usual behaviors of stock
Mercurial. It is thus up to the user to activate extensions as
needed.
Brodie Rao
help: refer to user configuration file more consistently...
r12083 To explicitly disable an extension enabled in a configuration file of
broader scope, prepend its path with !::
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999
[extensions]
# disabling extension bar residing in /path/to/extension/bar.py
Martin Geisler
Merge with stable
r10123 bar = !/path/to/extension/bar.py
Dan Villiom Podlaski Christiansen
setup: install translation files as package data...
r9999 # ditto, but no path was supplied for extension baz
Martin Geisler
Merge with stable
r10123 baz = !