mercurial/localrepo.py
changeset 3016 aebc3f64b20f
parent 2974 eef469259745
child 3032 4d0e0f149581
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -641,7 +641,11 @@ class localrepository(repo.repository):
         if node:
             fdict = dict.fromkeys(files)
             for fn in self.manifest.read(self.changelog.read(node)[0]):
-                fdict.pop(fn, None)
+                for ffn in fdict:
+                    # match if the file is the exact name or a directory
+                    if ffn == fn or fn.startswith("%s/" % ffn):
+                        del fdict[ffn]
+                        break
                 if match(fn):
                     yield 'm', fn
             for fn in fdict: