##// END OF EJS Templates
store: cache the `files()` return for store entries...
marmoute -
r51524:b59e0a4f default
parent child Browse files
Show More
@@ -475,6 +475,7 b' class SimpleStoreEntry(BaseStoreEntry):'
475 475 _entry_path = attr.ib()
476 476 _is_volatile = attr.ib(default=False)
477 477 _file_size = attr.ib(default=None)
478 _files = attr.ib(default=None)
478 479
479 480 def __init__(
480 481 self,
@@ -486,15 +487,18 b' class SimpleStoreEntry(BaseStoreEntry):'
486 487 self._entry_path = entry_path
487 488 self._is_volatile = is_volatile
488 489 self._file_size = file_size
490 self._files = None
489 491
490 492 def files(self):
491 return [
492 StoreFile(
493 unencoded_path=self._entry_path,
494 file_size=self._file_size,
495 is_volatile=self._is_volatile,
496 )
497 ]
493 if self._files is None:
494 self._files = [
495 StoreFile(
496 unencoded_path=self._entry_path,
497 file_size=self._file_size,
498 is_volatile=self._is_volatile,
499 )
500 ]
501 return self._files
498 502
499 503
500 504 @attr.s(slots=True, init=False)
@@ -507,6 +511,7 b' class RevlogStoreEntry(BaseStoreEntry):'
507 511 target_id = attr.ib(default=None)
508 512 _path_prefix = attr.ib(default=None)
509 513 _details = attr.ib(default=None)
514 _files = attr.ib(default=None)
510 515
511 516 def __init__(
512 517 self,
@@ -521,6 +526,7 b' class RevlogStoreEntry(BaseStoreEntry):'
521 526 self._path_prefix = path_prefix
522 527 assert b'.i' in details, (path_prefix, details)
523 528 self._details = details
529 self._files = None
524 530
525 531 @property
526 532 def is_changelog(self):
@@ -539,12 +545,13 b' class RevlogStoreEntry(BaseStoreEntry):'
539 545 return self._path_prefix + b'.i'
540 546
541 547 def files(self):
542 files = []
543 for ext in sorted(self._details, key=_ext_key):
544 path = self._path_prefix + ext
545 data = self._details[ext]
546 files.append(StoreFile(unencoded_path=path, **data))
547 return files
548 if self._files is None:
549 self._files = []
550 for ext in sorted(self._details, key=_ext_key):
551 path = self._path_prefix + ext
552 data = self._details[ext]
553 self._files.append(StoreFile(unencoded_path=path, **data))
554 return self._files
548 555
549 556 def get_revlog_instance(self, repo):
550 557 """Obtain a revlog instance from this store entry
General Comments 0
You need to be logged in to leave comments. Login now