mercurial/wireprotov1peer.py
changeset 50666 60f9602b413e
parent 50551 b1fb4185e47c
child 50699 2aaabd8f4471
--- a/mercurial/wireprotov1peer.py	Wed May 31 18:08:56 2023 +0100
+++ b/mercurial/wireprotov1peer.py	Wed Mar 08 14:23:43 2023 +0100
@@ -341,6 +341,19 @@
         self.requirecap(b'clonebundles', _(b'clone bundles'))
         return self._call(b'clonebundles')
 
+    def _finish_inline_clone_bundle(self, stream):
+        pass  # allow override for httppeer
+
+    def get_inline_clone_bundle(self, path):
+        stream = self._callstream(b"get_inline_clone_bundle", path=path)
+        length = util.uvarintdecodestream(stream)
+
+        # SSH streams will block if reading more than length
+        for chunk in util.filechunkiter(stream, limit=length):
+            yield chunk
+
+        self._finish_inline_clone_bundle(stream)
+
     @batchable
     def lookup(self, key):
         self.requirecap(b'lookup', _(b'look up remote revision'))