streamclone: don't support stream clone unless repo feature present
This change means custom repository types must opt in to enabling
stream clone. This seems reasonable, as stream clones are a very
low-level feature that has historically assumed the use of revlogs
and the layout of .hg/ that they entail.
Differential Revision: https://phab.mercurial-scm.org/D4853
--- a/mercurial/streamclone.py Tue Oct 02 12:40:39 2018 -0700
+++ b/mercurial/streamclone.py Tue Oct 02 12:43:54 2018 -0700
@@ -18,6 +18,7 @@
error,
phases,
pycompat,
+ repository,
store,
util,
)
@@ -178,6 +179,9 @@
def allowservergeneration(repo):
"""Whether streaming clones are allowed from the server."""
+ if repository.REPO_FEATURE_STREAM_CLONE not in repo.features:
+ return False
+
if not repo.ui.configbool('server', 'uncompressed', untrusted=True):
return False