Show More
@@ -1350,7 +1350,7 b' class manifestctx(object):' | |||||
1350 | self._data = manifestdict(text) |
|
1350 | self._data = manifestdict(text) | |
1351 | return self._data |
|
1351 | return self._data | |
1352 |
|
1352 | |||
1353 | def readfast(self): |
|
1353 | def readfast(self, shallow=False): | |
1354 | rl = self._repo.manifestlog._revlog |
|
1354 | rl = self._repo.manifestlog._revlog | |
1355 | r = rl.rev(self._node) |
|
1355 | r = rl.rev(self._node) | |
1356 | deltaparent = rl.deltaparent(r) |
|
1356 | deltaparent = rl.deltaparent(r) | |
@@ -1358,7 +1358,7 b' class manifestctx(object):' | |||||
1358 | return self.readdelta() |
|
1358 | return self.readdelta() | |
1359 | return self.read() |
|
1359 | return self.read() | |
1360 |
|
1360 | |||
1361 | def readdelta(self): |
|
1361 | def readdelta(self, shallow=False): | |
1362 | revlog = self._repo.manifestlog._revlog |
|
1362 | revlog = self._repo.manifestlog._revlog | |
1363 | if revlog._usemanifestv2: |
|
1363 | if revlog._usemanifestv2: | |
1364 | # Need to perform a slow delta |
|
1364 | # Need to perform a slow delta | |
@@ -1420,27 +1420,37 b' class treemanifestctx(object):' | |||||
1420 | def node(self): |
|
1420 | def node(self): | |
1421 | return self._node |
|
1421 | return self._node | |
1422 |
|
1422 | |||
1423 | def readdelta(self): |
|
1423 | def readdelta(self, shallow=False): | |
1424 | # Need to perform a slow delta |
|
|||
1425 | revlog = self._revlog() |
|
1424 | revlog = self._revlog() | |
1426 | r0 = revlog.deltaparent(revlog.rev(self._node)) |
|
1425 | if shallow and not revlog._usemanifestv2: | |
1427 | m0 = treemanifestctx(self._repo, self._dir, revlog.node(r0)).read() |
|
1426 | r = revlog.rev(self._node) | |
1428 | m1 = self.read() |
|
1427 | d = mdiff.patchtext(revlog.revdiff(revlog.deltaparent(r), r)) | |
1429 |
|
|
1428 | return manifestdict(d) | |
1430 | for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems(): |
|
1429 | else: | |
1431 | if n1: |
|
1430 | # Need to perform a slow delta | |
1432 | md[f] = n1 |
|
1431 | r0 = revlog.deltaparent(revlog.rev(self._node)) | |
1433 | if fl1: |
|
1432 | m0 = treemanifestctx(self._repo, self._dir, revlog.node(r0)).read() | |
1434 | md.setflag(f, fl1) |
|
1433 | m1 = self.read() | |
1435 | return md |
|
1434 | md = treemanifest(dir=self._dir) | |
|
1435 | for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems(): | |||
|
1436 | if n1: | |||
|
1437 | md[f] = n1 | |||
|
1438 | if fl1: | |||
|
1439 | md.setflag(f, fl1) | |||
|
1440 | return md | |||
1436 |
|
1441 | |||
1437 | def readfast(self): |
|
1442 | def readfast(self, shallow=False): | |
1438 | rl = self._revlog() |
|
1443 | rl = self._revlog() | |
1439 | r = rl.rev(self._node) |
|
1444 | r = rl.rev(self._node) | |
1440 | deltaparent = rl.deltaparent(r) |
|
1445 | deltaparent = rl.deltaparent(r) | |
1441 |
if deltaparent != revlog.nullrev and |
|
1446 | if (deltaparent != revlog.nullrev and | |
1442 | return self.readdelta() |
|
1447 | deltaparent in rl.parentrevs(r)): | |
1443 | return self.read() |
|
1448 | return self.readdelta(shallow=shallow) | |
|
1449 | ||||
|
1450 | if shallow: | |||
|
1451 | return manifestdict(rl.revision(self._node)) | |||
|
1452 | else: | |||
|
1453 | return self.read() | |||
1444 |
|
1454 | |||
1445 | class manifest(manifestrevlog): |
|
1455 | class manifest(manifestrevlog): | |
1446 | def __init__(self, opener, dir='', dirlogcache=None): |
|
1456 | def __init__(self, opener, dir='', dirlogcache=None): |
General Comments 0
You need to be logged in to leave comments.
Login now