Mercurial > hg-stable
changeset 17366:04c65cb59467 stable
fileset: matchctx.existing() must consider unknown files
By default, unknown files are ignored. If the 'unknown()' predicate
appears in the syntax tree, then they are taken in account.
Unfortunately, matchctx.existing() was filtering against non-deleted
context files, which does not include unknown files. So:
$ hg debugfileset 'binary() and unknown()'
would not return existing binary unknown files.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Wed, 15 Aug 2012 22:29:09 +0200 |
parents | 8a0513bf030a |
children | ce625185cfd9 |
files | mercurial/fileset.py tests/test-fileset.t |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/fileset.py Wed Aug 15 21:44:00 2012 +0200 +++ b/mercurial/fileset.py Wed Aug 15 22:29:09 2012 +0200 @@ -432,10 +432,12 @@ def existing(self): if self._status is not None: removed = set(self._status[3]) + unknown = set(self._status[4]) else: removed = set() + unknown = set() return (f for f in self.subset - if f in self.ctx and f not in removed) + if (f in self.ctx and f not in removed) or f in unknown) def narrow(self, files): return matchctx(self.ctx, self.filter(files), self._status)