##// END OF EJS Templates
store: use the revlog type from revlog's constant instead of custom one...
marmoute -
r51573:e324329f default
parent child Browse files
Show More
@@ -1,4 +1,4 b''
1 # store.py - repository store handling for Mercurial
1 # store.py - repository store handling for Mercurial)
2 2 #
3 3 # Copyright 2008 Olivia Mackall <olivia@selenic.com>
4 4 #
@@ -18,6 +18,9 b' from .thirdparty import attr'
18 18 from .node import hex
19 19 from .revlogutils.constants import (
20 20 INDEX_HEADER,
21 KIND_CHANGELOG,
22 KIND_FILELOG,
23 KIND_MANIFESTLOG,
21 24 )
22 25 from . import (
23 26 changelog,
@@ -431,32 +434,6 b' def is_revlog_file(f):'
431 434 return False
432 435
433 436
434 # the file is part of changelog data
435 FILEFLAGS_CHANGELOG = 1 << 13
436 # the file is part of manifest data
437 FILEFLAGS_MANIFESTLOG = 1 << 12
438 # the file is part of filelog data
439 FILEFLAGS_FILELOG = 1 << 11
440 # file that are not directly part of a revlog
441 FILEFLAGS_OTHER = 1 << 10
442
443 # the main entry point for a revlog
444 FILEFLAGS_REVLOG_MAIN = 1 << 1
445 # a secondary file for a revlog
446 FILEFLAGS_REVLOG_OTHER = 1 << 0
447
448 # files that are "volatile" and might change between listing and streaming
449 FILEFLAGS_VOLATILE = 1 << 20
450
451 FILETYPE_CHANGELOG_MAIN = FILEFLAGS_CHANGELOG | FILEFLAGS_REVLOG_MAIN
452 FILETYPE_CHANGELOG_OTHER = FILEFLAGS_CHANGELOG | FILEFLAGS_REVLOG_OTHER
453 FILETYPE_MANIFESTLOG_MAIN = FILEFLAGS_MANIFESTLOG | FILEFLAGS_REVLOG_MAIN
454 FILETYPE_MANIFESTLOG_OTHER = FILEFLAGS_MANIFESTLOG | FILEFLAGS_REVLOG_OTHER
455 FILETYPE_FILELOG_MAIN = FILEFLAGS_FILELOG | FILEFLAGS_REVLOG_MAIN
456 FILETYPE_FILELOG_OTHER = FILEFLAGS_FILELOG | FILEFLAGS_REVLOG_OTHER
457 FILETYPE_OTHER = FILEFLAGS_OTHER
458
459
460 437 @attr.s(slots=True)
461 438 class StoreFile:
462 439 """a file matching a store entry"""
@@ -586,15 +563,15 b' class RevlogStoreEntry(BaseStoreEntry):'
586 563
587 564 @property
588 565 def is_changelog(self):
589 return self.revlog_type & FILEFLAGS_CHANGELOG
566 return self.revlog_type == KIND_CHANGELOG
590 567
591 568 @property
592 569 def is_manifestlog(self):
593 return self.revlog_type & FILEFLAGS_MANIFESTLOG
570 return self.revlog_type == KIND_MANIFESTLOG
594 571
595 572 @property
596 573 def is_filelog(self):
597 return self.revlog_type & FILEFLAGS_FILELOG
574 return self.revlog_type == KIND_FILELOG
598 575
599 576 def main_file_path(self):
600 577 """unencoded path of the main revlog file"""
@@ -812,8 +789,8 b' class basicstore:'
812 789 be a list and the filenames that can't be decoded are added
813 790 to it instead. This is very rarely needed."""
814 791 dirs = [
815 (b'data', FILEFLAGS_FILELOG, False),
816 (b'meta', FILEFLAGS_MANIFESTLOG, True),
792 (b'data', KIND_FILELOG, False),
793 (b'meta', KIND_MANIFESTLOG, True),
817 794 ]
818 795 for base_dir, rl_type, strip_filename in dirs:
819 796 files = self._walk(base_dir, True, undecodable=undecodable)
@@ -865,8 +842,8 b' class basicstore:'
865 842 )
866 843 # yield manifest before changelog
867 844 top_rl = [
868 (manifestlogs, FILEFLAGS_MANIFESTLOG),
869 (changelogs, FILEFLAGS_CHANGELOG),
845 (manifestlogs, KIND_MANIFESTLOG),
846 (changelogs, KIND_CHANGELOG),
870 847 ]
871 848 assert len(manifestlogs) <= 1
872 849 assert len(changelogs) <= 1
@@ -1159,10 +1136,10 b' class fncachestore(basicstore):'
1159 1136 by_revlog = _gather_revlog(files)
1160 1137 for revlog, details in by_revlog:
1161 1138 if revlog.startswith(b'data/'):
1162 rl_type = FILEFLAGS_FILELOG
1139 rl_type = KIND_FILELOG
1163 1140 revlog_target_id = revlog.split(b'/', 1)[1]
1164 1141 elif revlog.startswith(b'meta/'):
1165 rl_type = FILEFLAGS_MANIFESTLOG
1142 rl_type = KIND_MANIFESTLOG
1166 1143 # drop the initial directory and the `00manifest` file part
1167 1144 tmp = revlog.split(b'/', 1)[1]
1168 1145 revlog_target_id = tmp.rsplit(b'/', 1)[0] + b'/'
General Comments 0
You need to be logged in to leave comments. Login now