D12028: stream-clone: factor computation of requirement of a stream clone
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Mon Jan 24 11:35:50 UTC 2022
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
This gather code duplicated in multiple place and will make it easier to modify
it safely in the future.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D12028
AFFECTED FILES
mercurial/streamclone.py
mercurial/wireprotov1server.py
CHANGE DETAILS
diff --git a/mercurial/wireprotov1server.py b/mercurial/wireprotov1server.py
--- a/mercurial/wireprotov1server.py
+++ b/mercurial/wireprotov1server.py
@@ -300,7 +300,7 @@
if streamclone.allowservergeneration(repo):
if repo.ui.configbool(b'server', b'preferuncompressed'):
caps.append(b'stream-preferred')
- requiredformats = repo.requirements & repo.supportedformats
+ requiredformats = streamclone.streamed_requirements(repo)
# if our local revlogs are just revlogv1, add 'stream' cap
if not requiredformats - {requirementsmod.REVLOGV1_REQUIREMENT}:
caps.append(b'stream')
diff --git a/mercurial/streamclone.py b/mercurial/streamclone.py
--- a/mercurial/streamclone.py
+++ b/mercurial/streamclone.py
@@ -47,6 +47,15 @@
return requirements
+def streamed_requirements(repo):
+ """the set of requirement the new clone will have to support
+
+ This is used for advertising the stream options and to generate the actual
+ stream content."""
+ requiredformats = repo.requirements & repo.supportedformats
+ return requiredformats
+
+
def canperformstreamclone(pullop, bundle2=False):
"""Whether it is possible to perform a streaming clone as part of pull.
@@ -346,7 +355,7 @@
if compression != b'UN':
raise ValueError(b'we do not support the compression argument yet')
- requirements = repo.requirements & repo.supportedformats
+ requirements = streamed_requirements(repo)
requires = b','.join(sorted(requirements))
def gen():
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list