equal
deleted
inserted
replaced
357 elif kind == stat.S_IFDIR and recurse: |
357 elif kind == stat.S_IFDIR and recurse: |
358 visit.append(fp) |
358 visit.append(fp) |
359 l.sort() |
359 l.sort() |
360 return l |
360 return l |
361 |
361 |
362 def datafiles(self): |
362 def datafiles(self, matcher=None): |
363 return self._walk('data', True) + self._walk('meta', True) |
363 return self._walk('data', True) + self._walk('meta', True) |
364 |
364 |
365 def topfiles(self): |
365 def topfiles(self): |
366 # yield manifest before changelog |
366 # yield manifest before changelog |
367 return reversed(self._walk('', False)) |
367 return reversed(self._walk('', False)) |
368 |
368 |
369 def walk(self): |
369 def walk(self, matcher=None): |
370 '''yields (unencoded, encoded, size)''' |
370 '''yields (unencoded, encoded, size) |
|
371 |
|
372 if a matcher is passed, storage files of only those tracked paths |
|
373 are passed with matches the matcher |
|
374 ''' |
371 # yield data files first |
375 # yield data files first |
372 for x in self.datafiles(): |
376 for x in self.datafiles(matcher): |
373 yield x |
377 yield x |
374 for x in self.topfiles(): |
378 for x in self.topfiles(): |
375 yield x |
379 yield x |
376 |
380 |
377 def copylist(self): |
381 def copylist(self): |
405 vfs.createmode = self.createmode |
409 vfs.createmode = self.createmode |
406 self.rawvfs = vfs |
410 self.rawvfs = vfs |
407 self.vfs = vfsmod.filtervfs(vfs, encodefilename) |
411 self.vfs = vfsmod.filtervfs(vfs, encodefilename) |
408 self.opener = self.vfs |
412 self.opener = self.vfs |
409 |
413 |
410 def datafiles(self): |
414 def datafiles(self, matcher=None): |
411 for a, b, size in super(encodedstore, self).datafiles(): |
415 for a, b, size in super(encodedstore, self).datafiles(): |
412 try: |
416 try: |
413 a = decodefilename(a) |
417 a = decodefilename(a) |
414 except KeyError: |
418 except KeyError: |
415 a = None |
419 a = None |
534 return self.pathsep + self.encode(f) |
538 return self.pathsep + self.encode(f) |
535 |
539 |
536 def getsize(self, path): |
540 def getsize(self, path): |
537 return self.rawvfs.stat(path).st_size |
541 return self.rawvfs.stat(path).st_size |
538 |
542 |
539 def datafiles(self): |
543 def datafiles(self, matcher=None): |
540 for f in sorted(self.fncache): |
544 for f in sorted(self.fncache): |
541 ef = self.encode(f) |
545 ef = self.encode(f) |
542 try: |
546 try: |
543 yield f, ef, self.getsize(ef) |
547 yield f, ef, self.getsize(ef) |
544 except OSError as err: |
548 except OSError as err: |