@@ -111,6 +111,7 @@ import lfcommands
import proto
import reposetup
import uisetup as uisetupmod
+import overrides
# Note for extension authors: ONLY specify testedwith = 'internal' for
# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
@@ -130,3 +131,4 @@ def uisetup(ui):
uisetupmod.uisetup(ui)
cmdtable = lfcommands.cmdtable
+revsetpredicate = overrides.revsetpredicate
@@ -12,7 +12,7 @@ import os
import copy
from mercurial import hg, util, cmdutil, scmutil, match as match_, \
- archival, pathutil, revset, error
+ archival, pathutil, registrar, revset, error
from mercurial.i18n import _
import lfutil
@@ -801,7 +801,7 @@ def overridepull(orig, ui, repo, source=
ui.status(_("%d largefiles cached\n") % numcached)
return result
-revsetpredicate = revset.extpredicate()
+revsetpredicate = registrar.revsetpredicate()
@revsetpredicate('pulled()')
def pulledrevsetsymbol(repo, subset, x):
@@ -171,5 +171,3 @@ def uisetup(ui):
if name == 'transplant':
extensions.wrapcommand(getattr(module, 'cmdtable'), 'transplant',
overrides.overridetransplant)
-
- overrides.revsetpredicate.setup()
@@ -70,6 +70,7 @@ from mercurial import extensions, error,
from mercurial import patch as patchmod
from mercurial import lock as lockmod
from mercurial import localrepo
+from mercurial import registrar
from mercurial import subrepo
import os, re, errno, shutil
@@ -3536,7 +3537,7 @@ def summaryhook(ui, repo):
# i18n: column positioning for "hg summary"
ui.note(_("mq: (empty queue)\n"))
-revsetpredicate = revset.extpredicate()
+revsetpredicate = registrar.revsetpredicate()
@revsetpredicate('mq()')
def revsetmq(repo, subset, x):
@@ -3575,8 +3576,6 @@ def extsetup(ui):
if extmodule.__file__ != __file__:
dotable(getattr(extmodule, 'cmdtable', {}))
- revsetpredicate.setup()
-
colortable = {'qguard.negative': 'red',
'qguard.positive': 'yellow',
'qguard.unguarded': 'green',
@@ -16,7 +16,7 @@ https://mercurial-scm.org/wiki/RebaseExt
from mercurial import hg, util, repair, merge, cmdutil, commands, bookmarks
from mercurial import extensions, patch, scmutil, phases, obsolete, error
-from mercurial import copies, destutil, repoview, revset
+from mercurial import copies, destutil, repoview, registrar, revset
from mercurial.commands import templateopts
from mercurial.node import nullrev, nullid, hex, short
from mercurial.lock import release
@@ -76,7 +76,7 @@ def _destrebase(repo, sourceset):
return destutil.destmerge(repo, action='rebase', sourceset=sourceset,
onheadcheck=False)
-revsetpredicate = revset.extpredicate()
+revsetpredicate = registrar.revsetpredicate()
@revsetpredicate('_destrebase')
def _revsetdestrebase(repo, subset, x):
@@ -1325,4 +1325,3 @@ def uisetup(ui):
['rebasestate', _('hg rebase --continue')])
# ensure rebased rev are not hidden
extensions.wrapfunction(repoview, '_getdynamicblockers', _rebasedvisible)
- revsetpredicate.setup()
@@ -19,7 +19,7 @@ import os, tempfile
from mercurial.node import short
from mercurial import bundlerepo, hg, merge, match
from mercurial import patch, revlog, scmutil, util, error, cmdutil
-from mercurial import revset, templatekw, exchange
+from mercurial import registrar, revset, templatekw, exchange
class TransplantError(error.Abort):
pass
@@ -694,7 +694,7 @@ def _dotransplant(ui, repo, *revs, **opt
if cleanupfn:
cleanupfn()
-revsetpredicate = revset.extpredicate()
+revsetpredicate = registrar.revsetpredicate()
@revsetpredicate('transplanted([set])')
def revsettransplanted(repo, subset, x):
@@ -714,7 +714,6 @@ def kwtransplanted(repo, ctx, **args):
return n and revlog.hex(n) or ''
def extsetup(ui):
- revsetpredicate.setup()
templatekw.keywords['transplanted'] = kwtransplanted
cmdutil.unfinishedstates.append(
['transplant/journal', True, False, _('transplant in progress'),
@@ -33,6 +33,7 @@ from . import (
fancyopts,
hg,
hook,
+ revset,
ui as uimod,
util,
)
@@ -752,6 +753,7 @@ def _checkshellalias(lui, ui, args, prec
# extraobj) arguments
extraloaders = [
('cmdtable', commands, 'loadcmdtable'),
+ ('revsetpredicate', revset, 'loadpredicate'),
]
def _dispatch(req):
@@ -2191,28 +2191,21 @@ test error message of bad revset
$ cd ..
-Test registrar.delayregistrar via revset.extpredicate
-
-'extpredicate' decorator shouldn't register any functions until
-'setup()' on it.
+Test that revset predicate of extension isn't loaded at failure of
+loading it
$ cd repo
$ cat <<EOF > $TESTTMP/custompredicate.py
- > from mercurial import revset
+ > from mercurial import error, registrar, revset
>
- > revsetpredicate = revset.extpredicate()
+ > revsetpredicate = registrar.revsetpredicate()
>
> @revsetpredicate('custom1()')
> def custom1(repo, subset, x):
> return revset.baseset([1])
- > @revsetpredicate('custom2()')
- > def custom2(repo, subset, x):
- > return revset.baseset([2])
>
- > def uisetup(ui):
- > if ui.configbool('custompredicate', 'enabled'):
- > revsetpredicate.setup()
+ > raise error.Abort('intentional failure of loading extension')
> EOF
$ cat <<EOF > .hg/hgrc
> [extensions]
@@ -2220,13 +2213,8 @@ Test registrar.delayregistrar via revset
> EOF
$ hg debugrevspec "custom1()"
+ *** failed to import extension custompredicate from $TESTTMP/custompredicate.py: intentional failure of loading extension
hg: parse error: unknown identifier: custom1
[255]
- $ hg debugrevspec "custom2()"
- hg: parse error: unknown identifier: custom2
- [255]
- $ hg debugrevspec "custom1() or custom2()" --config custompredicate.enabled=true
- 1
- 2
$ cd ..