Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 42806:616aa62e5027
revlog: add some documentation to `_revisiondata` code
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 07 Aug 2019 23:55:01 +0200 |
parents | bf070a59546a |
children | 90f5dfc9c42a |
comparison
equal
deleted
inserted
replaced
42805:bf070a59546a | 42806:616aa62e5027 |
---|---|
1609 to True when generating changegroups or in debug commands. | 1609 to True when generating changegroups or in debug commands. |
1610 """ | 1610 """ |
1611 return self._revisiondata(nodeorrev, _df, raw=raw) | 1611 return self._revisiondata(nodeorrev, _df, raw=raw) |
1612 | 1612 |
1613 def _revisiondata(self, nodeorrev, _df=None, raw=False): | 1613 def _revisiondata(self, nodeorrev, _df=None, raw=False): |
1614 # deal with <nodeorrev> argument type | |
1614 if isinstance(nodeorrev, int): | 1615 if isinstance(nodeorrev, int): |
1615 rev = nodeorrev | 1616 rev = nodeorrev |
1616 node = self.node(rev) | 1617 node = self.node(rev) |
1617 else: | 1618 else: |
1618 node = nodeorrev | 1619 node = nodeorrev |
1619 rev = None | 1620 rev = None |
1620 | 1621 |
1622 # fast path the special `nullid` rev | |
1621 if node == nullid: | 1623 if node == nullid: |
1622 return "" | 1624 return "" |
1623 | 1625 |
1626 # revision in the cache (could be useful to apply delta) | |
1624 cachedrev = None | 1627 cachedrev = None |
1628 # the revlog's flag for this revision | |
1629 # (usually alter its state or content) | |
1625 flags = None | 1630 flags = None |
1631 # The text as stored inside the revlog. Might be the revision or might | |
1632 # need to be processed to retrieve the revision. | |
1626 rawtext = None | 1633 rawtext = None |
1634 # An intermediate text to apply deltas to | |
1627 basetext = None | 1635 basetext = None |
1636 | |
1637 # Check if we have the entry in cache | |
1638 # The cache entry looks like (node, rev, rawtext) | |
1628 if self._revisioncache: | 1639 if self._revisioncache: |
1629 if self._revisioncache[0] == node: | 1640 if self._revisioncache[0] == node: |
1630 # _cache only stores rawtext | 1641 # _cache only stores rawtext |
1631 # rawtext is reusable. but we might need to run flag processors | 1642 # rawtext is reusable. but we might need to run flag processors |
1632 rawtext = self._revisioncache[2] | 1643 rawtext = self._revisioncache[2] |
1633 if raw: | 1644 if raw: |
1645 # if we don't want to process the raw text and that raw | |
1646 # text is cached, we can exit early. | |
1634 return rawtext | 1647 return rawtext |
1635 # duplicated, but good for perf | 1648 # duplicated, but good for perf |
1636 if rev is None: | 1649 if rev is None: |
1637 rev = self.rev(node) | 1650 rev = self.rev(node) |
1638 if flags is None: | 1651 if flags is None: |