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: