D12031: stream-clone: filter possible missing requirements using all supported one
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Mon Jan 24 11:36:44 UTC 2022
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
The `supportedformat` requirements is missing some important requirements and it
seems better to filter out with all requirements we know, not just an
"arbitrary" subset.
This is especially relevant as we about to phase out the `supportedformat` class
attribute.
(a backport of this change to stable should be sent soon).
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D12031
AFFECTED FILES
mercurial/streamclone.py
tests/test-http-bundle1.t
tests/test-http.t
CHANGE DETAILS
diff --git a/tests/test-http.t b/tests/test-http.t
--- a/tests/test-http.t
+++ b/tests/test-http.t
@@ -59,8 +59,10 @@
$ cat > $TESTTMP/removesupportedformat.py << EOF
> from mercurial import localrepo
- > def extsetup(ui):
- > localrepo.localrepository.supportedformats.remove(b'generaldelta')
+ > def reposetup(ui, repo):
+ > local = repo.local()
+ > if local is not None:
+ > local.supported.remove(b'generaldelta')
> EOF
$ hg clone --config extensions.rsf=$TESTTMP/removesupportedformat.py --stream http://localhost:$HGPORT/ copy3
diff --git a/tests/test-http-bundle1.t b/tests/test-http-bundle1.t
--- a/tests/test-http-bundle1.t
+++ b/tests/test-http-bundle1.t
@@ -70,8 +70,10 @@
$ cat > $TESTTMP/removesupportedformat.py << EOF
> from mercurial import localrepo
- > def extsetup(ui):
- > localrepo.localrepository.supportedformats.remove(b'generaldelta')
+ > def reposetup(ui, repo):
+ > local = repo.local()
+ > if local is not None:
+ > local.supported.remove(b'generaldelta')
> EOF
$ hg clone --config extensions.rsf=$TESTTMP/removesupportedformat.py --stream http://localhost:$HGPORT/ copy3
diff --git a/mercurial/streamclone.py b/mercurial/streamclone.py
--- a/mercurial/streamclone.py
+++ b/mercurial/streamclone.py
@@ -128,7 +128,7 @@
streamreqs = set(streamreqs.split(b','))
# Server requires something we don't support. Bail.
- missingreqs = streamreqs - repo.supportedformats
+ missingreqs = streamreqs - repo.supported
if missingreqs:
pullop.repo.ui.warn(
_(
@@ -503,7 +503,7 @@
)
filecount, bytecount, requirements = readbundle1header(fp)
- missingreqs = requirements - repo.supportedformats
+ missingreqs = requirements - repo.supported
if missingreqs:
raise error.Abort(
_(b'unable to apply stream clone: unsupported format: %s')
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list