D3290: logexchange: use command executor for wire protocol commands

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Thu Apr 12 19:59:42 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3290

AFFECTED FILES
  mercurial/logexchange.py

CHANGE DETAILS

diff --git a/mercurial/logexchange.py b/mercurial/logexchange.py
--- a/mercurial/logexchange.py
+++ b/mercurial/logexchange.py
@@ -127,14 +127,25 @@
     remoterepo is the peer instance
     """
     remotepath = activepath(localrepo, remoterepo)
-    bookmarks = remoterepo.listkeys('bookmarks')
+
+    with remoterepo.commandexecutor() as e:
+        fbookmarks = e.callcommand('listkeys', {
+            'namespace': 'bookmarks',
+        })
+
+    bookmarks = fbookmarks.result()
+
     # on a push, we don't want to keep obsolete heads since
     # they won't show up as heads on the next pull, so we
     # remove them here otherwise we would require the user
     # to issue a pull to refresh the storage
     bmap = {}
     repo = localrepo.unfiltered()
-    for branch, nodes in remoterepo.branchmap().iteritems():
+
+    with remoterepo.commandexecutor() as e:
+        fbranchmap = e.callcommand('branchmap', {})
+
+    for branch, nodes in fbranchmap.result().iteritems():
         bmap[branch] = []
         for node in nodes:
             if node in repo and not repo[node].obsolete():



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list