comparison mercurial/store.py @ 8467:9890151a7f30

store: use set instead of dict
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sun, 17 May 2009 04:16:44 +0200
parents b87a50b7125c
children 0e91bcaaa92c
comparison
equal deleted inserted replaced
8466:afb3e504b558 8467:9890151a7f30
232 def __init__(self, opener): 232 def __init__(self, opener):
233 self.opener = opener 233 self.opener = opener
234 self.entries = None 234 self.entries = None
235 235
236 def loadfncache(self): 236 def loadfncache(self):
237 self.entries = {} 237 self.entries = set()
238 for f in fncache(self.opener): 238 for f in fncache(self.opener):
239 self.entries[f] = True 239 self.entries.add(f)
240 240
241 def __call__(self, path, mode='r', *args, **kw): 241 def __call__(self, path, mode='r', *args, **kw):
242 if mode not in ('r', 'rb') and path.startswith('data/'): 242 if mode not in ('r', 'rb') and path.startswith('data/'):
243 if self.entries is None: 243 if self.entries is None:
244 self.loadfncache() 244 self.loadfncache()
245 if path not in self.entries: 245 if path not in self.entries:
246 self.opener('fncache', 'ab').write(path + '\n') 246 self.opener('fncache', 'ab').write(path + '\n')
247 # fncache may contain non-existent files after rollback / strip 247 # fncache may contain non-existent files after rollback / strip
248 self.entries[path] = True 248 self.entries.add(path)
249 return self.opener(hybridencode(path), mode, *args, **kw) 249 return self.opener(hybridencode(path), mode, *args, **kw)
250 250
251 class fncachestore(basicstore): 251 class fncachestore(basicstore):
252 def __init__(self, path, opener, pathjoiner): 252 def __init__(self, path, opener, pathjoiner):
253 self.pathjoiner = pathjoiner 253 self.pathjoiner = pathjoiner