Patchwork D3292: bookmarks: use command executor for wire protocol commands

login
register
mail settings
Submitter phabricator
Date April 12, 2018, 8 p.m.
Message ID <differential-rev-PHID-DREV-qktoru5nrgwn42zpxm57-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/30826/
State Superseded
Headers show

Comments

phabricator - April 12, 2018, 8 p.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  And change the name of a variable to reflect that is is a peer.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/bookmarks.py

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel
phabricator - April 13, 2018, 9:53 p.m.
durin42 added a comment.


  btw, I don't love how this looks, it feels like we could probably revisit letting "normal" function calls work for one-shot requests like this, but let's do it later once we map the new wireproto world a little more

REPOSITORY
  rHG Mercurial

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

To: indygreg, #hg-reviewers
Cc: durin42, mercurial-devel
phabricator - April 13, 2018, 10:11 p.m.
indygreg added a comment.


  In https://phab.mercurial-scm.org/D3292#53207, @durin42 wrote:
  
  > btw, I don't love how this looks, it feels like we could probably revisit letting "normal" function calls work for one-shot requests like this, but let's do it later once we map the new wireproto world a little more
  
  
  I’m not opposed to providing a helper method that wraps and makes the consumer simpler. Where my mind is at is that proto v2 commands will be smaller and we’ll issue more of them. I wanted to make batching and transfer semantics for half-duplex connections explicit.

REPOSITORY
  rHG Mercurial

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

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

Patch

diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -646,12 +646,18 @@ 
             writer(msg)
         localmarks.applychanges(repo, tr, changes)
 
-def incoming(ui, repo, other):
+def incoming(ui, repo, peer):
     '''Show bookmarks incoming from other to repo
     '''
     ui.status(_("searching for changed bookmarks\n"))
 
-    remotemarks = unhexlifybookmarks(other.listkeys('bookmarks'))
+    with peer.commandexecutor() as e:
+        fbookmarks = e.callcommand('listkeys', {
+            'namespace': 'bookmarks',
+        })
+
+    remotemarks = unhexlifybookmarks(fbookmarks.result())
+
     r = comparebookmarks(repo, remotemarks, repo._bookmarks)
     addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same = r
 
@@ -733,12 +739,18 @@ 
 
     return 0
 
-def summary(repo, other):
+def summary(repo, peer):
     '''Compare bookmarks between repo and other for "hg summary" output
 
     This returns "(# of incoming, # of outgoing)" tuple.
     '''
-    remotemarks = unhexlifybookmarks(other.listkeys('bookmarks'))
+    with peer.commandexecutor() as e:
+        fbookmarks = e.callcommand('listkeys', {
+            'namespace': 'bookmarks',
+        })
+
+    remotemarks = unhexlifybookmarks(fbookmarks.result())
+
     r = comparebookmarks(repo, remotemarks, repo._bookmarks)
     addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same = r
     return (len(addsrc), len(adddst))