D3317: wireproto: properly call clonebundles command

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Fri Apr 13 18:21:43 EDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rHGa168799687e5: wireproto: properly call clonebundles command (authored by indygreg, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D3317?vs=8137&id=8185

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

AFFECTED FILES
  mercurial/exchange.py
  mercurial/localrepo.py
  mercurial/repository.py
  mercurial/wireprotov1peer.py

CHANGE DETAILS

diff --git a/mercurial/wireprotov1peer.py b/mercurial/wireprotov1peer.py
--- a/mercurial/wireprotov1peer.py
+++ b/mercurial/wireprotov1peer.py
@@ -322,6 +322,10 @@
 
     # Begin of ipeercommands interface.
 
+    def clonebundles(self):
+        self.requirecap('clonebundles', _('clone bundles'))
+        return self._call('clonebundles')
+
     @batchable
     def lookup(self, key):
         self.requirecap('lookup', _('look up remote revision'))
diff --git a/mercurial/repository.py b/mercurial/repository.py
--- a/mercurial/repository.py
+++ b/mercurial/repository.py
@@ -101,6 +101,12 @@
         Returns a set of string capabilities.
         """
 
+    def clonebundles():
+        """Obtains the clone bundles manifest for the repo.
+
+        Returns the manifest as unparsed bytes.
+        """
+
     def debugwireargs(one, two, three=None, four=None, five=None):
         """Used to facilitate debugging of arguments passed over the wire."""
 
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -235,6 +235,9 @@
     def capabilities(self):
         return self._caps
 
+    def clonebundles(self):
+        return self._repo.tryread('clonebundles.manifest')
+
     def debugwireargs(self, one, two, three=None, four=None, five=None):
         """Used to test argument passing over the wire"""
         return "%s %s %s %s %s" % (one, two, pycompat.bytestr(three),
diff --git a/mercurial/exchange.py b/mercurial/exchange.py
--- a/mercurial/exchange.py
+++ b/mercurial/exchange.py
@@ -2170,7 +2170,8 @@
     if not remote.capable('clonebundles'):
         return
 
-    res = remote._call('clonebundles')
+    with remote.commandexecutor() as e:
+        res = e.callcommand('clonebundles', {}).result()
 
     # If we call the wire protocol command, that's good enough to record the
     # attempt.



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


More information about the Mercurial-devel mailing list