grep: add option for logcmdutil.makewalker() to not filter revs by file pats
This is needed to implement "grep --all-files".
--- a/mercurial/logcmdutil.py Thu Oct 01 09:48:41 2020 +0200
+++ b/mercurial/logcmdutil.py Thu Sep 10 18:40:01 2020 +0900
@@ -711,6 +711,10 @@
# include revisions where files were removed
force_changelog_traversal = attr.ib(default=False) # type: bool
+ # filter revisions by file patterns, which should be disabled only if
+ # you want to include revisions where files were unmodified
+ filter_revisions_by_pats = attr.ib(default=True) # type: bool
+
# sort revisions prior to traversal: 'desc', 'topo', or None
sort_revisions = attr.ib(default=None) # type: Optional[bytes]
@@ -902,7 +906,7 @@
b'user': wopts.users,
}
- if slowpath:
+ if wopts.filter_revisions_by_pats and slowpath:
# See walkchangerevs() slow path.
#
# pats/include/exclude cannot be represented as separate
@@ -919,7 +923,7 @@
for p in wopts.exclude_pats:
matchargs.append(b'x:' + p)
opts[b'_matchfiles'] = matchargs
- elif not wopts.follow:
+ elif wopts.filter_revisions_by_pats and not wopts.follow:
opts[b'_patslog'] = list(wopts.pats)
expr = []