# HG changeset patch # User Matt Mackall # Date 2009-05-31 22:54:18 # Node ID fb74e1e69da08c10c3bf83efe4d438b070037f1a # Parent 0941ee76489ec03b695015d766b0769e226afd64 walk: simplify check for missing file diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -509,17 +509,16 @@ class dirstate(object): results[nf] = None except OSError, inst: keep = False - prefix = nf + "/" - for fn in dmap: - if nf == fn: - if matchfn(nf): - results[nf] = None - keep = True - break - elif fn.startswith(prefix): - dostep3 = True - keep = True - break + if nf in dmap: # does it exactly match a file? + results[nf] = None + keep = True + else: # does it match a directory? + prefix = nf + "/" + for fn in dmap: + if fn.startswith(prefix): + dostep3 = True + keep = True + break if not keep: if inst.errno != errno.ENOENT: fwarn(ff, inst.strerror)