# HG changeset patch # User Yuya Nishihara # Date 2017-12-19 12:41:39 # Node ID 5bec509dc1ffbb4ed4c682abf3022616ff4a76a4 # Parent 2c47986505ff1f9c9c77117eca584347dbd1d89b log: make "slowpath" condition slightly more readable Before 8e0e334bad42 and 6c76c42a5893, the condition was "anypats() or (files() and --removed)". This can be read as " or ". So "not always()" (i.e. walk file revs) seems more appropriate here. The logic should be unchanged: not anypats() => always() or isexact() or prefix() isexact() => not always() prefix() => not always() diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2193,8 +2193,7 @@ def walkchangerevs(repo, match, opts, pr if not revs: return [] wanted = set() - slowpath = match.anypats() or ((match.isexact() or match.prefix()) and - opts.get('removed')) + slowpath = match.anypats() or (not match.always() and opts.get('removed')) fncache = {} change = repo.changectx @@ -2390,8 +2389,7 @@ def _makelogrevset(repo, pats, opts, rev # platforms without shell expansion (windows). wctx = repo[None] match, pats = scmutil.matchandpats(wctx, pats, opts) - slowpath = match.anypats() or ((match.isexact() or match.prefix()) and - opts.get('removed')) + slowpath = match.anypats() or (not match.always() and opts.get('removed')) if not slowpath: for f in match.files(): if follow and f not in wctx: