diff --git a/hgext/narrow/narrowchangegroup.py b/hgext/narrow/narrowchangegroup.py --- a/hgext/narrow/narrowchangegroup.py +++ b/hgext/narrow/narrowchangegroup.py @@ -21,16 +21,6 @@ def setup(): - def supportedoutgoingversions(orig, repo): - versions = orig(repo) - if changegroup.NARROW_REQUIREMENT in repo.requirements: - versions.discard('01') - versions.discard('02') - return versions - - extensions.wrapfunction(changegroup, 'supportedoutgoingversions', - supportedoutgoingversions) - def prune(orig, self, revlog, missing, commonrevs): if isinstance(revlog, manifest.manifestrevlog): matcher = getattr(self._repo, 'narrowmatch', diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -898,6 +898,11 @@ # support versions 01 and 02. versions.discard('01') versions.discard('02') + if NARROW_REQUIREMENT in repo.requirements: + # Versions 01 and 02 don't support revlog flags, and we need to + # support that for stripping and unbundling to work. + versions.discard('01') + versions.discard('02') return versions def localversion(repo):