Mercurial > hg
changeset 17745:b9a56b816ff2
store: add a contains method to fncachestore
Adds a __contains__ method to fncachestore to check for file/dir existence (using fncache.__contains__).
Also extends fncache.__contains__ to check for directories (by prefix matching)
author | smuralid |
---|---|
date | Thu, 13 Sep 2012 17:57:43 -0700 |
parents | 09d5b2055295 |
children | 6d218e47cf9b |
files | mercurial/store.py |
diffstat | 1 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/store.py Thu Sep 13 17:00:34 2012 -0700 +++ b/mercurial/store.py Thu Sep 13 17:57:43 2012 -0700 @@ -425,10 +425,19 @@ self._dirty = True self.entries.add(fn) - def __contains__(self, fn): + def __contains__(self, path): if self.entries is None: self._load() - return fn in self.entries + # Check for files (exact match) + if path + ".i" in self.entries: + return True + # Now check for directories (prefix match) + if not path.endswith('/'): + path += '/' + for e in self.entries: + if e.startswith(path): + return True + return False def __iter__(self): if self.entries is None: @@ -511,6 +520,11 @@ def write(self): self.fncache.write() + def __contains__(self, path): + '''Checks if the store contains path''' + path = "/".join(("data", path)) + return path in self.fncache + def store(requirements, path, vfstype): if 'store' in requirements: if 'fncache' in requirements: