mercurial/store.py
changeset 17782 8095306c1fb2
parent 17747 aad3bce98f76
child 17783 df55ce6854c3
equal deleted inserted replaced
17781:8ce535745500 17782:8095306c1fb2
   424             self._load()
   424             self._load()
   425         if fn not in self.entries:
   425         if fn not in self.entries:
   426             self._dirty = True
   426             self._dirty = True
   427             self.entries.add(fn)
   427             self.entries.add(fn)
   428 
   428 
   429     def __contains__(self, path):
   429     def __contains__(self, fn):
   430         if self.entries is None:
   430         if self.entries is None:
   431             self._load()
   431             self._load()
   432         # Check for files (exact match)
   432         return fn in self.entries
   433         if path + ".i" in self.entries:
       
   434             return True
       
   435         # Now check for directories (prefix match)
       
   436         if not path.endswith('/'):
       
   437             path += '/'
       
   438         for e in self.entries:
       
   439             if e.startswith(path):
       
   440                 return True
       
   441         return False
       
   442 
   433 
   443     def __iter__(self):
   434     def __iter__(self):
   444         if self.entries is None:
   435         if self.entries is None:
   445             self._load()
   436             self._load()
   446         return iter(self.entries)
   437         return iter(self.entries)
   522         self.fncache.write()
   513         self.fncache.write()
   523 
   514 
   524     def __contains__(self, path):
   515     def __contains__(self, path):
   525         '''Checks if the store contains path'''
   516         '''Checks if the store contains path'''
   526         path = "/".join(("data", path))
   517         path = "/".join(("data", path))
   527         return path in self.fncache
   518         # check for files (exact match)
       
   519         if path + '.i' in self.fncache:
       
   520             return True
       
   521         # now check for directories (prefix match)
       
   522         if not path.endswith('/'):
       
   523             path += '/'
       
   524         for e in self.fncache:
       
   525             if e.startswith(path):
       
   526                 return True
       
   527         return False
   528 
   528 
   529 def store(requirements, path, vfstype):
   529 def store(requirements, path, vfstype):
   530     if 'store' in requirements:
   530     if 'store' in requirements:
   531         if 'fncache' in requirements:
   531         if 'fncache' in requirements:
   532             return fncachestore(path, vfstype, 'dotencode' in requirements)
   532             return fncachestore(path, vfstype, 'dotencode' in requirements)