Show More
@@ -461,7 +461,7 b' class localrepository(object):' | |||
|
461 | 461 | return manifest.manifest(self.svfs) |
|
462 | 462 | |
|
463 | 463 | def dirlog(self, dir): |
|
464 |
return manifest. |
|
|
464 | return self.manifest.dirlog(dir) | |
|
465 | 465 | |
|
466 | 466 | @repofilecache('dirstate') |
|
467 | 467 | def dirstate(self): |
@@ -796,7 +796,11 b' class treemanifest(object):' | |||
|
796 | 796 | writesubtree(subm, subp1, subp2) |
|
797 | 797 | |
|
798 | 798 | class manifest(revlog.revlog): |
|
799 | def __init__(self, opener, dir=''): | |
|
799 | def __init__(self, opener, dir='', dirlogcache=None): | |
|
800 | '''The 'dir' and 'dirlogcache' arguments are for internal use by | |
|
801 | manifest.manifest only. External users should create a root manifest | |
|
802 | log with manifest.manifest(opener) and call dirlog() on it. | |
|
803 | ''' | |
|
800 | 804 | # During normal operations, we expect to deal with not more than four |
|
801 | 805 | # revs at a time (such as during commit --amend). When rebasing large |
|
802 | 806 | # stacks of commits, the number can go up, hence the config knob below. |
@@ -820,12 +824,24 b' class manifest(revlog.revlog):' | |||
|
820 | 824 | indexfile = "meta/" + dir + "00manifest.i" |
|
821 | 825 | revlog.revlog.__init__(self, opener, indexfile) |
|
822 | 826 | self._dir = dir |
|
827 | # The dirlogcache is kept on the root manifest log | |
|
828 | if dir: | |
|
829 | self._dirlogcache = dirlogcache | |
|
830 | else: | |
|
831 | self._dirlogcache = {'': self} | |
|
823 | 832 | |
|
824 | 833 | def _newmanifest(self, data=''): |
|
825 | 834 | if self._treeinmem: |
|
826 | 835 | return treemanifest(self._dir, data) |
|
827 | 836 | return manifestdict(data) |
|
828 | 837 | |
|
838 | def dirlog(self, dir): | |
|
839 | assert self._treeondisk | |
|
840 | if dir not in self._dirlogcache: | |
|
841 | self._dirlogcache[dir] = manifest(self.opener, dir, | |
|
842 | self._dirlogcache) | |
|
843 | return self._dirlogcache[dir] | |
|
844 | ||
|
829 | 845 | def _slowreaddelta(self, node): |
|
830 | 846 | r0 = self.deltaparent(self.rev(node)) |
|
831 | 847 | m0 = self.read(self.node(r0)) |
@@ -867,8 +883,7 b' class manifest(revlog.revlog):' | |||
|
867 | 883 | text = self.revision(node) |
|
868 | 884 | if self._treeondisk: |
|
869 | 885 | def readsubtree(dir, subm): |
|
870 | sublog = manifest(self.opener, dir) | |
|
871 | return sublog.read(subm) | |
|
886 | return self.dirlog(dir).read(subm) | |
|
872 | 887 | m = self._newmanifest() |
|
873 | 888 | m.parse(text, readsubtree) |
|
874 | 889 | m.setnode(node) |
@@ -929,7 +944,7 b' class manifest(revlog.revlog):' | |||
|
929 | 944 | |
|
930 | 945 | def _addtree(self, m, transaction, link, m1, m2): |
|
931 | 946 | def writesubtree(subm, subp1, subp2): |
|
932 |
sublog = |
|
|
947 | sublog = self.dirlog(subm.dir()) | |
|
933 | 948 | sublog.add(subm, transaction, link, subp1, subp2, None, None) |
|
934 | 949 | m.writesubtrees(m1, m2, writesubtree) |
|
935 | 950 | text = m.dirtext(self._usemanifestv2) |
General Comments 0
You need to be logged in to leave comments.
Login now