Show More
@@ -1794,31 +1794,7 b' class localrepository(object):' | |||
|
1794 | 1794 | keyword arguments: |
|
1795 | 1795 | heads: list of revs to clone (forces use of pull) |
|
1796 | 1796 | stream: use streaming clone if possible''' |
|
1797 | ||
|
1798 | # now, all clients that can request uncompressed clones can | |
|
1799 | # read repo formats supported by all servers that can serve | |
|
1800 | # them. | |
|
1801 | ||
|
1802 | # if revlog format changes, client will have to check version | |
|
1803 | # and format flags on "stream" capability, and use | |
|
1804 | # uncompressed only if compatible. | |
|
1805 | ||
|
1806 | if stream is None: | |
|
1807 | # if the server explicitly prefers to stream (for fast LANs) | |
|
1808 | stream = remote.capable('stream-preferred') | |
|
1809 | ||
|
1810 | if stream and not heads: | |
|
1811 | # 'stream' means remote revlog format is revlogv1 only | |
|
1812 | if remote.capable('stream'): | |
|
1813 | streamclone.streamin(self, remote, set(('revlogv1',))) | |
|
1814 | else: | |
|
1815 | # otherwise, 'streamreqs' contains the remote revlog format | |
|
1816 | streamreqs = remote.capable('streamreqs') | |
|
1817 | if streamreqs: | |
|
1818 | streamreqs = set(streamreqs.split(',')) | |
|
1819 | # if we support it, stream in and adjust our requirements | |
|
1820 | if not streamreqs - self.supportedformats: | |
|
1821 | streamclone.streamin(self, remote, streamreqs) | |
|
1797 | streamclone.maybeperformstreamclone(self, remote, heads, stream) | |
|
1822 | 1798 | |
|
1823 | 1799 | # internal config: ui.quietbookmarkmove |
|
1824 | 1800 | quiet = self.ui.backupconfig('ui', 'quietbookmarkmove') |
@@ -17,6 +17,32 b' from . import (' | |||
|
17 | 17 | util, |
|
18 | 18 | ) |
|
19 | 19 | |
|
20 | def maybeperformstreamclone(repo, remote, heads, stream): | |
|
21 | # now, all clients that can request uncompressed clones can | |
|
22 | # read repo formats supported by all servers that can serve | |
|
23 | # them. | |
|
24 | ||
|
25 | # if revlog format changes, client will have to check version | |
|
26 | # and format flags on "stream" capability, and use | |
|
27 | # uncompressed only if compatible. | |
|
28 | ||
|
29 | if stream is None: | |
|
30 | # if the server explicitly prefers to stream (for fast LANs) | |
|
31 | stream = remote.capable('stream-preferred') | |
|
32 | ||
|
33 | if stream and not heads: | |
|
34 | # 'stream' means remote revlog format is revlogv1 only | |
|
35 | if remote.capable('stream'): | |
|
36 | streamin(repo, remote, set(('revlogv1',))) | |
|
37 | else: | |
|
38 | # otherwise, 'streamreqs' contains the remote revlog format | |
|
39 | streamreqs = remote.capable('streamreqs') | |
|
40 | if streamreqs: | |
|
41 | streamreqs = set(streamreqs.split(',')) | |
|
42 | # if we support it, stream in and adjust our requirements | |
|
43 | if not streamreqs - repo.supportedformats: | |
|
44 | streamin(repo, remote, streamreqs) | |
|
45 | ||
|
20 | 46 | def allowservergeneration(ui): |
|
21 | 47 | """Whether streaming clones are allowed from the server.""" |
|
22 | 48 | return ui.configbool('server', 'uncompressed', True, untrusted=True) |
General Comments 0
You need to be logged in to leave comments.
Login now