equal
deleted
inserted
replaced
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: |