diff --git a/hgext3rd/fbconduit.py b/hgext3rd/fbconduit.py --- a/hgext3rd/fbconduit.py +++ b/hgext3rd/fbconduit.py @@ -43,7 +43,6 @@ revset.symbols['gitnode'] = gitnode extensions.wrapfunction(revset, 'stringset', overridestringset) - revset.symbols['stringset'] = revset.stringset revset.methods['string'] = revset.stringset revset.methods['symbol'] = revset.stringset @@ -224,7 +223,7 @@ rn = repo[node.bin(hghash)].rev() return subset.filter(lambda r: r == rn) -def overridestringset(orig, repo, subset, x): +def overridestringset(orig, repo, subset, x, *args, **kwargs): # Is the given revset a phabricator hg hash (ie: rHGEXTaaacb34aacb34aa) phabmatch = phabhashre.match(x) if phabmatch: @@ -262,4 +261,4 @@ return gitnode(repo, subset, ('string', githash)) else: raise error.Abort('git hash must be 40 characters') - return orig(repo, subset, x) + return orig(repo, subset, x, *args, **kwargs) diff --git a/hgext3rd/gitrevset.py b/hgext3rd/gitrevset.py --- a/hgext3rd/gitrevset.py +++ b/hgext3rd/gitrevset.py @@ -12,14 +12,21 @@ $ hg id -r 'g$HASH' """ -from mercurial import extensions -from mercurial import error -from mercurial import hg -from mercurial import registrar -from mercurial import revset + +from __future__ import absolute_import + +from mercurial ( + error, + extensions, + hg, + registrar, + revset, +) from mercurial.i18n import _ import re +revsetpredicate = registrar.revsetpredicate() + githashre = re.compile('g([0-9a-fA-F]{40,40})') templatekeyword = registrar.templatekeyword() @@ -32,6 +39,7 @@ # data exists return hexgitnode.encode('hex') if hexgitnode else '' +@revsetpredicate('gitnode(id)') def gitnode(repo, subset, x): """``gitnode(id)`` Return the hg revision corresponding to a given git rev.""" @@ -73,15 +81,13 @@ finally: repo.baseui.fout = oldfout -def overridestringset(orig, repo, subset, x): +def overridestringset(orig, repo, subset, x, *args, **kwargs): m = githashre.match(x) if m is not None: return gitnode(repo, subset, ('string', m.group(1))) - return orig(repo, subset, x) + return orig(repo, subset, x, *args, **kwargs) def extsetup(ui): - revset.symbols['gitnode'] = gitnode extensions.wrapfunction(revset, 'stringset', overridestringset) - revset.symbols['stringset'] = revset.stringset revset.methods['string'] = revset.stringset revset.methods['symbol'] = revset.stringset diff --git a/hgext3rd/phrevset.py b/hgext3rd/phrevset.py --- a/hgext3rd/phrevset.py +++ b/hgext3rd/phrevset.py @@ -268,17 +268,16 @@ raise error.Abort('Conduit returned unknown ' 'sourceControlSystem "%s"' % vcs) -def revsetstringset(orig, repo, subset, revstr): +def revsetstringset(orig, repo, subset, revstr, *args, **kwargs): """Wrapper that recognizes revisions starting with 'D'""" if revstr.startswith('D') and revstr[1:].isdigit(): return smartset.baseset(revsetdiff(repo, subset, revstr[1:])) - return orig(repo, subset, revstr) + return orig(repo, subset, revstr, *args, **kwargs) def extsetup(ui): extensions.wrapfunction(revset, 'stringset', revsetstringset) - revset.symbols['stringset'] = revset.stringset revset.methods['string'] = revset.stringset revset.methods['symbol'] = revset.stringset