D451 is going to add an order parameter so let's update our code.
Also remove the wrapping of revset.symbols['stringset'], which is no
longer needed by the current Mercurial.
durham |
Restricted Project |
D451 is going to add an order parameter so let's update our code.
Also remove the wrapping of revset.symbols['stringset'], which is no
longer needed by the current Mercurial.
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
Path | Packages | |||
---|---|---|---|---|
M | hgext3rd/fbconduit.py (5 lines) | |||
M | hgext3rd/gitrevset.py (24 lines) | |||
M | hgext3rd/phrevset.py (5 lines) |
def extsetup(ui): | def extsetup(ui): | ||||
if not conduit_config(ui): | if not conduit_config(ui): | ||||
ui.warn(_('No conduit host specified in config; disabling fbconduit\n')) | ui.warn(_('No conduit host specified in config; disabling fbconduit\n')) | ||||
return | return | ||||
revset.symbols['gitnode'] = gitnode | revset.symbols['gitnode'] = gitnode | ||||
extensions.wrapfunction(revset, 'stringset', overridestringset) | extensions.wrapfunction(revset, 'stringset', overridestringset) | ||||
revset.symbols['stringset'] = revset.stringset | |||||
revset.methods['string'] = revset.stringset | revset.methods['string'] = revset.stringset | ||||
revset.methods['symbol'] = revset.stringset | revset.methods['symbol'] = revset.stringset | ||||
def conduit_config(ui, host=None, path=None, protocol=None): | def conduit_config(ui, host=None, path=None, protocol=None): | ||||
global conduit_host, conduit_path, conduit_protocol | global conduit_host, conduit_path, conduit_protocol | ||||
conduit_host = host or ui.config('fbconduit', 'host') | conduit_host = host or ui.config('fbconduit', 'host') | ||||
conduit_path = path or ui.config('fbconduit', 'path') | conduit_path = path or ui.config('fbconduit', 'path') | ||||
conduit_protocol = protocol or ui.config('fbconduit', 'protocol') | conduit_protocol = protocol or ui.config('fbconduit', 'protocol') | ||||
n, lasterror))) | n, lasterror))) | ||||
else: | else: | ||||
repo.ui.warn(("Could not translate revision {0}\n".format(n))) | repo.ui.warn(("Could not translate revision {0}\n".format(n))) | ||||
return subset.filter(lambda r: False) | return subset.filter(lambda r: False) | ||||
rn = repo[node.bin(hghash)].rev() | rn = repo[node.bin(hghash)].rev() | ||||
return subset.filter(lambda r: r == rn) | 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) | # Is the given revset a phabricator hg hash (ie: rHGEXTaaacb34aacb34aa) | ||||
phabmatch = phabhashre.match(x) | phabmatch = phabhashre.match(x) | ||||
if phabmatch: | if phabmatch: | ||||
phabrepo = phabmatch.group(1) | phabrepo = phabmatch.group(1) | ||||
phabhash = phabmatch.group(2) | phabhash = phabmatch.group(2) | ||||
# The hash may be a git hash | # The hash may be a git hash | ||||
if phabrepo in repo.ui.configlist('fbconduit', 'gitcallsigns', []): | if phabrepo in repo.ui.configlist('fbconduit', 'gitcallsigns', []): | ||||
return overridestringset(orig, repo, subset, 'g%s' % phabhash) | return overridestringset(orig, repo, subset, 'g%s' % phabhash) | ||||
m = githashre.match(x) | m = githashre.match(x) | ||||
if m is not None: | if m is not None: | ||||
githash = m.group(1) | githash = m.group(1) | ||||
if len(githash) == 40: | if len(githash) == 40: | ||||
return gitnode(repo, subset, ('string', githash)) | return gitnode(repo, subset, ('string', githash)) | ||||
else: | else: | ||||
raise error.Abort('git hash must be 40 characters') | raise error.Abort('git hash must be 40 characters') | ||||
return orig(repo, subset, x) | return orig(repo, subset, x, *args, **kwargs) |
"You can view the diff at http://phabricator.fb.com/D%s\n\n" | "You can view the diff at http://phabricator.fb.com/D%s\n\n" | ||||
repo.ui.warn(msg % (diffid, diffid)) | repo.ui.warn(msg % (diffid, diffid)) | ||||
return [] | return [] | ||||
else: | else: | ||||
raise error.Abort('Conduit returned unknown ' | raise error.Abort('Conduit returned unknown ' | ||||
'sourceControlSystem "%s"' % vcs) | 'sourceControlSystem "%s"' % vcs) | ||||
def revsetstringset(orig, repo, subset, revstr): | def revsetstringset(orig, repo, subset, revstr, *args, **kwargs): | ||||
"""Wrapper that recognizes revisions starting with 'D'""" | """Wrapper that recognizes revisions starting with 'D'""" | ||||
if revstr.startswith('D') and revstr[1:].isdigit(): | if revstr.startswith('D') and revstr[1:].isdigit(): | ||||
return smartset.baseset(revsetdiff(repo, subset, revstr[1:])) | return smartset.baseset(revsetdiff(repo, subset, revstr[1:])) | ||||
return orig(repo, subset, revstr) | return orig(repo, subset, revstr, *args, **kwargs) | ||||
def extsetup(ui): | def extsetup(ui): | ||||
extensions.wrapfunction(revset, 'stringset', revsetstringset) | extensions.wrapfunction(revset, 'stringset', revsetstringset) | ||||
revset.symbols['stringset'] = revset.stringset | |||||
revset.methods['string'] = revset.stringset | revset.methods['string'] = revset.stringset | ||||
revset.methods['symbol'] = revset.stringset | revset.methods['symbol'] = revset.stringset | ||||
Import keyword is missing here