# HG changeset patch # User Yuya Nishihara # Date 1513687299 -32400 # 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 -r 2c47986505ff -r 5bec509dc1ff mercurial/cmdutil.py --- a/mercurial/cmdutil.py Mon Dec 18 11:23:51 2017 -0800 +++ b/mercurial/cmdutil.py Tue Dec 19 21:41:39 2017 +0900 @@ -2193,8 +2193,7 @@ 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 @@ # 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: