diff -r 0570351db4e7 -r 89ab2459f62a mercurial/bundlecaches.py --- a/mercurial/bundlecaches.py Tue Feb 25 20:21:43 2025 -0500 +++ b/mercurial/bundlecaches.py Wed Mar 05 11:41:45 2025 +0100 @@ -323,11 +323,18 @@ # repo supports and error if the bundle isn't compatible. if b'requirements' in params: requirements = set(cast(bytes, params[b'requirements']).split(b',')) - missingreqs = requirements - requirementsmod.STREAM_FIXED_REQUIREMENTS - if missingreqs: + relevant_reqs = ( + requirements - requirementsmod.STREAM_IGNORABLE_REQUIREMENTS + ) + # avoid cycle (not great for pytype) + from . import localrepo + + supported_req = localrepo.gathersupportedrequirements(repo.ui) + missing_reqs = relevant_reqs - supported_req + if missing_reqs: raise error.UnsupportedBundleSpecification( _(b'missing support for repository features: %s') - % b', '.join(sorted(missingreqs)) + % b', '.join(sorted(missing_reqs)) ) # Compute contentopts based on the version