Mercurial > public > mercurial-scm > hg
comparison mercurial/manifest.py @ 30295:f65faa4422c8
manifest: remove manifest.readshallowdelta
This removes manifest.readshallowdelta and converts its one consumer to use
manifestlog instead.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 02 Nov 2016 17:10:47 -0700 |
parents | bce79dfcf5e4 |
children | b19291e5d506 |
comparison
equal
deleted
inserted
replaced
30294:bce79dfcf5e4 | 30295:f65faa4422c8 |
---|---|
1363 if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r): | 1363 if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r): |
1364 return self.readdelta() | 1364 return self.readdelta() |
1365 return self.read() | 1365 return self.read() |
1366 | 1366 |
1367 def readdelta(self, shallow=False): | 1367 def readdelta(self, shallow=False): |
1368 '''Returns a manifest containing just the entries that are present | |
1369 in this manifest, but not in its p1 manifest. This is efficient to read | |
1370 if the revlog delta is already p1. | |
1371 | |
1372 Changing the value of `shallow` has no effect on flat manifests. | |
1373 ''' | |
1368 revlog = self._repo.manifestlog._revlog | 1374 revlog = self._repo.manifestlog._revlog |
1369 if revlog._usemanifestv2: | 1375 if revlog._usemanifestv2: |
1370 # Need to perform a slow delta | 1376 # Need to perform a slow delta |
1371 r0 = revlog.deltaparent(revlog.rev(self._node)) | 1377 r0 = revlog.deltaparent(revlog.rev(self._node)) |
1372 m0 = manifestctx(self._repo, revlog.node(r0)).read() | 1378 m0 = manifestctx(self._repo, revlog.node(r0)).read() |
1425 | 1431 |
1426 def node(self): | 1432 def node(self): |
1427 return self._node | 1433 return self._node |
1428 | 1434 |
1429 def readdelta(self, shallow=False): | 1435 def readdelta(self, shallow=False): |
1436 '''Returns a manifest containing just the entries that are present | |
1437 in this manifest, but not in its p1 manifest. This is efficient to read | |
1438 if the revlog delta is already p1. | |
1439 | |
1440 If `shallow` is True, this will read the delta for this directory, | |
1441 without recursively reading subdirectory manifests. Instead, any | |
1442 subdirectory entry will be reported as it appears in the manifest, i.e. | |
1443 the subdirectory will be reported among files and distinguished only by | |
1444 its 't' flag. | |
1445 ''' | |
1430 revlog = self._revlog() | 1446 revlog = self._revlog() |
1431 if shallow and not revlog._usemanifestv2: | 1447 if shallow and not revlog._usemanifestv2: |
1432 r = revlog.rev(self._node) | 1448 r = revlog.rev(self._node) |
1433 d = mdiff.patchtext(revlog.revdiff(revlog.deltaparent(r), r)) | 1449 d = mdiff.patchtext(revlog.revdiff(revlog.deltaparent(r), r)) |
1434 return manifestdict(d) | 1450 return manifestdict(d) |
1498 if dir not in self._dirlogcache: | 1514 if dir not in self._dirlogcache: |
1499 self._dirlogcache[dir] = manifest(self.opener, dir, | 1515 self._dirlogcache[dir] = manifest(self.opener, dir, |
1500 self._dirlogcache) | 1516 self._dirlogcache) |
1501 return self._dirlogcache[dir] | 1517 return self._dirlogcache[dir] |
1502 | 1518 |
1503 def _slowreaddelta(self, node): | |
1504 r0 = self.deltaparent(self.rev(node)) | |
1505 m0 = self.read(self.node(r0)) | |
1506 m1 = self.read(node) | |
1507 md = self._newmanifest() | |
1508 for f, ((n0, fl0), (n1, fl1)) in m0.diff(m1).iteritems(): | |
1509 if n1: | |
1510 md[f] = n1 | |
1511 if fl1: | |
1512 md.setflag(f, fl1) | |
1513 return md | |
1514 | |
1515 def readdelta(self, node): | |
1516 if self._usemanifestv2 or self._treeondisk: | |
1517 return self._slowreaddelta(node) | |
1518 r = self.rev(node) | |
1519 d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r)) | |
1520 return self._newmanifest(d) | |
1521 | |
1522 def readshallowdelta(self, node): | |
1523 '''For flat manifests, this is the same as readdelta(). For | |
1524 treemanifests, this will read the delta for this revlog's directory, | |
1525 without recursively reading subdirectory manifests. Instead, any | |
1526 subdirectory entry will be reported as it appears in the manifests, i.e. | |
1527 the subdirectory will be reported among files and distinguished only by | |
1528 its 't' flag.''' | |
1529 if not self._treeondisk: | |
1530 return self.readdelta(node) | |
1531 if self._usemanifestv2: | |
1532 raise error.Abort( | |
1533 _("readshallowdelta() not implemented for manifestv2")) | |
1534 r = self.rev(node) | |
1535 d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r)) | |
1536 return manifestdict(d) | |
1537 | |
1538 def read(self, node): | 1519 def read(self, node): |
1539 if node == revlog.nullid: | 1520 if node == revlog.nullid: |
1540 return self._newmanifest() # don't upset local cache | 1521 return self._newmanifest() # don't upset local cache |
1541 if node in self._mancache: | 1522 if node in self._mancache: |
1542 cached = self._mancache[node] | 1523 cached = self._mancache[node] |