diff mercurial/localrepo.py @ 26445:f134fb33c906

streamclone: move streaming clone logic from localrepo This is the last remnants of streaming clone code in localrepo.py. This is a mostly mechanical transplant of code to a new file. Only a rewrite of "self" to "repo" was performed. The code will be significantly refactored in upcoming patches. So don't scrutinize it too closely.
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 02 Oct 2015 21:39:04 -0700
parents ef8d27f53204
children e05fd574c922
line wrap: on
line diff
--- a/mercurial/localrepo.py	Fri Oct 02 16:24:56 2015 -0700
+++ b/mercurial/localrepo.py	Fri Oct 02 21:39:04 2015 -0700
@@ -1794,31 +1794,7 @@
         keyword arguments:
         heads: list of revs to clone (forces use of pull)
         stream: use streaming clone if possible'''
-
-        # now, all clients that can request uncompressed clones can
-        # read repo formats supported by all servers that can serve
-        # them.
-
-        # if revlog format changes, client will have to check version
-        # and format flags on "stream" capability, and use
-        # uncompressed only if compatible.
-
-        if stream is None:
-            # if the server explicitly prefers to stream (for fast LANs)
-            stream = remote.capable('stream-preferred')
-
-        if stream and not heads:
-            # 'stream' means remote revlog format is revlogv1 only
-            if remote.capable('stream'):
-                streamclone.streamin(self, remote, set(('revlogv1',)))
-            else:
-                # otherwise, 'streamreqs' contains the remote revlog format
-                streamreqs = remote.capable('streamreqs')
-                if streamreqs:
-                    streamreqs = set(streamreqs.split(','))
-                    # if we support it, stream in and adjust our requirements
-                    if not streamreqs - self.supportedformats:
-                        streamclone.streamin(self, remote, streamreqs)
+        streamclone.maybeperformstreamclone(self, remote, heads, stream)
 
         # internal config: ui.quietbookmarkmove
         quiet = self.ui.backupconfig('ui', 'quietbookmarkmove')