hgext/remotefilelog/contentstore.py
changeset 47150 8d3c2f9d4af7
parent 47135 1352cc14cce2
child 47877 2174f54aab18
equal deleted inserted replaced
47149:396442cd7e6a 47150:8d3c2f9d4af7
   279 class manifestrevlogstore(object):
   279 class manifestrevlogstore(object):
   280     def __init__(self, repo):
   280     def __init__(self, repo):
   281         self._store = repo.store
   281         self._store = repo.store
   282         self._svfs = repo.svfs
   282         self._svfs = repo.svfs
   283         self._revlogs = dict()
   283         self._revlogs = dict()
   284         self._cl = revlog.revlog(self._svfs, indexfile=b'00changelog.i')
   284         self._cl = revlog.revlog(self._svfs, radix=b'00changelog.i')
   285         self._repackstartlinkrev = 0
   285         self._repackstartlinkrev = 0
   286 
   286 
   287     def get(self, name, node):
   287     def get(self, name, node):
   288         return self._revlog(name).rawdata(node)
   288         return self._revlog(name).rawdata(node)
   289 
   289 
   339         raise RuntimeError(b"cannot add to a revlog store")
   339         raise RuntimeError(b"cannot add to a revlog store")
   340 
   340 
   341     def _revlog(self, name):
   341     def _revlog(self, name):
   342         rl = self._revlogs.get(name)
   342         rl = self._revlogs.get(name)
   343         if rl is None:
   343         if rl is None:
   344             revlogname = b'00manifesttree.i'
   344             revlogname = b'00manifesttree'
   345             if name != b'':
   345             if name != b'':
   346                 revlogname = b'meta/%s/00manifest.i' % name
   346                 revlogname = b'meta/%s/00manifest' % name
   347             rl = revlog.revlog(self._svfs, indexfile=revlogname)
   347             rl = revlog.revlog(self._svfs, radix=revlogname)
   348             self._revlogs[name] = rl
   348             self._revlogs[name] = rl
   349         return rl
   349         return rl
   350 
   350 
   351     def getmissing(self, keys):
   351     def getmissing(self, keys):
   352         missing = []
   352         missing = []
   363 
   363 
   364     def markledger(self, ledger, options=None):
   364     def markledger(self, ledger, options=None):
   365         if options and options.get(constants.OPTION_PACKSONLY):
   365         if options and options.get(constants.OPTION_PACKSONLY):
   366             return
   366             return
   367         treename = b''
   367         treename = b''
   368         rl = revlog.revlog(self._svfs, indexfile=b'00manifesttree.i')
   368         rl = revlog.revlog(self._svfs, radix=b'00manifesttree')
   369         startlinkrev = self._repackstartlinkrev
   369         startlinkrev = self._repackstartlinkrev
   370         endlinkrev = self._repackendlinkrev
   370         endlinkrev = self._repackendlinkrev
   371         for rev in pycompat.xrange(len(rl) - 1, -1, -1):
   371         for rev in pycompat.xrange(len(rl) - 1, -1, -1):
   372             linkrev = rl.linkrev(rev)
   372             linkrev = rl.linkrev(rev)
   373             if linkrev < startlinkrev:
   373             if linkrev < startlinkrev:
   380 
   380 
   381         for t, path, encoded, size in self._store.datafiles():
   381         for t, path, encoded, size in self._store.datafiles():
   382             if path[:5] != b'meta/' or path[-2:] != b'.i':
   382             if path[:5] != b'meta/' or path[-2:] != b'.i':
   383                 continue
   383                 continue
   384 
   384 
   385             treename = path[5 : -len(b'/00manifest.i')]
   385             treename = path[5 : -len(b'/00manifest')]
   386 
   386 
   387             rl = revlog.revlog(self._svfs, indexfile=path)
   387             rl = revlog.revlog(self._svfs, indexfile=path[:-2])
   388             for rev in pycompat.xrange(len(rl) - 1, -1, -1):
   388             for rev in pycompat.xrange(len(rl) - 1, -1, -1):
   389                 linkrev = rl.linkrev(rev)
   389                 linkrev = rl.linkrev(rev)
   390                 if linkrev < startlinkrev:
   390                 if linkrev < startlinkrev:
   391                     break
   391                     break
   392                 if linkrev > endlinkrev:
   392                 if linkrev > endlinkrev: