# HG changeset patch # User Pierre-Yves David # Date 1643021346 -3600 # Node ID d9017df7013524bac86f79643166b0543af6d618 # Parent dfbfa802876b0abea581ede425607c3c7353d08f stream-clone: filter possible missing requirements using all supported one 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). Differential Revision: https://phab.mercurial-scm.org/D12031 diff -r dfbfa802876b -r d9017df70135 mercurial/streamclone.py --- a/mercurial/streamclone.py Mon Jan 17 19:18:20 2022 +0100 +++ b/mercurial/streamclone.py Mon Jan 24 11:49:06 2022 +0100 @@ -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') diff -r dfbfa802876b -r d9017df70135 tests/test-http-bundle1.t --- a/tests/test-http-bundle1.t Mon Jan 17 19:18:20 2022 +0100 +++ b/tests/test-http-bundle1.t Mon Jan 24 11:49:06 2022 +0100 @@ -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 -r dfbfa802876b -r d9017df70135 tests/test-http.t --- a/tests/test-http.t Mon Jan 17 19:18:20 2022 +0100 +++ b/tests/test-http.t Mon Jan 24 11:49:06 2022 +0100 @@ -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