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():