diff mercurial/context.py @ 38289:aaed058a0390

context: make workingctx.matches() filter our removed files (API) It seems surprising that workingctx.matches() includes files that had been removed in the working copy. The callers don't want that either (besides the `hg locate` that was changed in the previous patch). The only observable difference that I'm aware of is that `hg log -T 'wdir()' -r '{files(...)}'` will no longer include removed files (an improvement, IMO). That matches `hg files` (but does not match the deprecated `hg locate`). Differential Revision: https://phab.mercurial-scm.org/D3711
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 11 Jun 2018 10:05:23 -0700
parents c0f8fa74d8c2
children da2a7d8354b2
line wrap: on
line diff
--- a/mercurial/context.py	Mon Jun 11 09:47:07 2018 -0700
+++ b/mercurial/context.py	Mon Jun 11 10:05:23 2018 -0700
@@ -1227,7 +1227,8 @@
                                                unknown=True, ignored=False))
 
     def matches(self, match):
-        return sorted(self._repo.dirstate.matches(match))
+        ds = self._repo.dirstate
+        return sorted(f for f in ds.matches(match) if ds[f] != 'r')
 
     def ancestors(self):
         for p in self._parents: