diff --git a/hgext/narrow/narrowchangegroup.py b/hgext/narrow/narrowchangegroup.py --- a/hgext/narrow/narrowchangegroup.py +++ b/hgext/narrow/narrowchangegroup.py @@ -52,7 +52,7 @@ getattr(self, '_narrow_matcher', None)) if matcher is not None: narrowmatch = matcher() - changedfiles = filter(narrowmatch, changedfiles) + changedfiles = [f for f in changedfiles if narrowmatch(f)] if getattr(self, 'is_shallow', False): # See comment in generate() for why this sadness is a thing. mfdicts = self._mfdicts diff --git a/hgext/narrow/narrowcopies.py b/hgext/narrow/narrowcopies.py --- a/hgext/narrow/narrowcopies.py +++ b/hgext/narrow/narrowcopies.py @@ -19,7 +19,7 @@ missing = orig(a, b, match) if util.safehasattr(repo, 'narrowmatch'): narrowmatch = repo.narrowmatch() - missing = filter(narrowmatch, missing) + missing = [f for f in missing if narrowmatch(f)] return missing def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit, diff --git a/hgext/narrow/narrowpatch.py b/hgext/narrow/narrowpatch.py --- a/hgext/narrow/narrowpatch.py +++ b/hgext/narrow/narrowpatch.py @@ -31,9 +31,9 @@ copy, getfilectx, *args, **kwargs): if util.safehasattr(repo, 'narrowmatch'): narrowmatch = repo.narrowmatch() - modified = filter(narrowmatch, modified) - added = filter(narrowmatch, added) - removed = filter(narrowmatch, removed) + modified = [f for f in modified if narrowmatch(f)] + added = [f for f in added if narrowmatch(f)] + removed = [f for f in removed if narrowmatch(f)] copy = {k: v for k, v in copy.iteritems() if narrowmatch(k)} return orig(repo, revs, ctx1, ctx2, modified, added, removed, copy, getfilectx, *args, **kwargs)