mercurial/manifest.py
changeset 29940 fa145a205a7f
parent 29939 80be4436e4cc
child 29941 1cc93a154723
equal deleted inserted replaced
29939:80be4436e4cc 29940:fa145a205a7f
   894 
   894 
   895 class manifestrevlog(revlog.revlog):
   895 class manifestrevlog(revlog.revlog):
   896     '''A revlog that stores manifest texts. This is responsible for caching the
   896     '''A revlog that stores manifest texts. This is responsible for caching the
   897     full-text manifest contents.
   897     full-text manifest contents.
   898     '''
   898     '''
   899     def __init__(self, opener, indexfile):
   899     def __init__(self, opener, dir=''):
   900         super(manifestrevlog, self).__init__(opener, indexfile)
       
   901 
       
   902         # During normal operations, we expect to deal with not more than four
   900         # During normal operations, we expect to deal with not more than four
   903         # revs at a time (such as during commit --amend). When rebasing large
   901         # revs at a time (such as during commit --amend). When rebasing large
   904         # stacks of commits, the number can go up, hence the config knob below.
   902         # stacks of commits, the number can go up, hence the config knob below.
   905         cachesize = 4
   903         cachesize = 4
       
   904         usetreemanifest = False
       
   905         usemanifestv2 = False
   906         opts = getattr(opener, 'options', None)
   906         opts = getattr(opener, 'options', None)
   907         if opts is not None:
   907         if opts is not None:
   908             cachesize = opts.get('manifestcachesize', cachesize)
   908             cachesize = opts.get('manifestcachesize', cachesize)
       
   909             usetreemanifest = opts.get('treemanifest', usetreemanifest)
       
   910             usemanifestv2 = opts.get('manifestv2', usemanifestv2)
       
   911 
       
   912         self._treeondisk = usetreemanifest
       
   913         self._usemanifestv2 = usemanifestv2
       
   914 
   909         self._fulltextcache = util.lrucachedict(cachesize)
   915         self._fulltextcache = util.lrucachedict(cachesize)
       
   916 
       
   917         indexfile = "00manifest.i"
       
   918         if dir:
       
   919             assert self._treeondisk, 'opts is %r' % opts
       
   920             if not dir.endswith('/'):
       
   921                 dir = dir + '/'
       
   922             indexfile = "meta/" + dir + "00manifest.i"
       
   923         self._dir = dir
       
   924 
       
   925         super(manifestrevlog, self).__init__(opener, indexfile)
   910 
   926 
   911     @property
   927     @property
   912     def fulltextcache(self):
   928     def fulltextcache(self):
   913         return self._fulltextcache
   929         return self._fulltextcache
   914 
   930 
  1091         # During normal operations, we expect to deal with not more than four
  1107         # During normal operations, we expect to deal with not more than four
  1092         # revs at a time (such as during commit --amend). When rebasing large
  1108         # revs at a time (such as during commit --amend). When rebasing large
  1093         # stacks of commits, the number can go up, hence the config knob below.
  1109         # stacks of commits, the number can go up, hence the config knob below.
  1094         cachesize = 4
  1110         cachesize = 4
  1095         usetreemanifest = False
  1111         usetreemanifest = False
  1096         usemanifestv2 = False
       
  1097         opts = getattr(opener, 'options', None)
  1112         opts = getattr(opener, 'options', None)
  1098         if opts is not None:
  1113         if opts is not None:
  1099             cachesize = opts.get('manifestcachesize', cachesize)
  1114             cachesize = opts.get('manifestcachesize', cachesize)
  1100             usetreemanifest = opts.get('treemanifest', usetreemanifest)
  1115             usetreemanifest = opts.get('treemanifest', usetreemanifest)
  1101             usemanifestv2 = opts.get('manifestv2', usemanifestv2)
       
  1102         self._mancache = util.lrucachedict(cachesize)
  1116         self._mancache = util.lrucachedict(cachesize)
  1103         self._treeinmem = usetreemanifest
  1117         self._treeinmem = usetreemanifest
  1104         self._treeondisk = usetreemanifest
  1118         super(manifest, self).__init__(opener, dir=dir)
  1105         self._usemanifestv2 = usemanifestv2
       
  1106         indexfile = "00manifest.i"
       
  1107         if dir:
       
  1108             assert self._treeondisk, 'opts is %r' % opts
       
  1109             if not dir.endswith('/'):
       
  1110                 dir = dir + '/'
       
  1111             indexfile = "meta/" + dir + "00manifest.i"
       
  1112         super(manifest, self).__init__(opener, indexfile)
       
  1113         self._dir = dir
       
  1114         # The dirlogcache is kept on the root manifest log
  1119         # The dirlogcache is kept on the root manifest log
  1115         if dir:
  1120         if dir:
  1116             self._dirlogcache = dirlogcache
  1121             self._dirlogcache = dirlogcache
  1117         else:
  1122         else:
  1118             self._dirlogcache = {'': self}
  1123             self._dirlogcache = {'': self}