diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -81,7 +81,11 @@ raise error.Abort(_("remote branch lookup not supported")) revs.append(hashbranch) return revs, revs[0] - branchmap = peer.branchmap() + + with peer.commandexecutor() as e: + fbranchmap = e.callcommand('branchmap', {}) + + branchmap = fbranchmap.result() def primary(branch): if branch == '.': @@ -421,7 +425,17 @@ raise error.Abort(_("src repository does not support " "revision lookup and so doesn't " "support clone by revision")) - revs = [srcpeer.lookup(r) for r in rev] + + remoterevs = [] + for r in rev: + with srcpeer.commandexecutor() as e: + frev = e.callcommand('lookup', { + 'key': r, + }) + + remoterevs.append(frev.result()) + + revs = remoterevs # Obtain a lock before checking for or cloning the pooled repo otherwise # 2 clients may race creating or populating it. @@ -567,7 +581,13 @@ # raises RepoLookupError if revision 0 is filtered or otherwise # not available. If we fail to resolve, sharing is not enabled. try: - rootnode = srcpeer.lookup('0') + with srcpeer.commandexecutor() as e: + frootnode = e.callcommand('lookup', { + 'key': '0', + }) + + rootnode = frootnode.result() + if rootnode != node.nullid: sharepath = os.path.join(sharepool, node.hex(rootnode)) else: @@ -663,7 +683,17 @@ raise error.Abort(_("src repository does not support " "revision lookup and so doesn't " "support clone by revision")) - revs = [srcpeer.lookup(r) for r in revs] + + remoterevs = [] + for rev in revs: + with srcpeer.commandexecutor() as e: + frev = e.callcommand('lookup', { + 'key': rev, + }) + + remoterevs.append(frev.result()) + + revs = remoterevs checkout = revs[0] else: revs = None @@ -705,7 +735,13 @@ if update: if update is not True: - checkout = srcpeer.lookup(update) + with srcpeer.commandexecutor() as e: + fcheckout = e.callcommand('lookup', { + 'key': update, + }) + + checkout = fcheckout.result() + uprev = None status = None if checkout is not None: