Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 42983:35ab2c1a58aa
revlog: return sidedata map from `_revisiondata`
Nothing extra any side data yet. However, it will happens in the future. So we
better prepare the callers of the `_revisiondata` to deal with it.
Differential Revision: https://phab.mercurial-scm.org/D6809
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 03 Sep 2019 22:54:04 +0200 |
parents | 0d1272783f24 |
children | 9d62f9fa332f |
comparison
equal
deleted
inserted
replaced
42982:0d1272783f24 | 42983:35ab2c1a58aa |
---|---|
1612 """ | 1612 """ |
1613 if raw: | 1613 if raw: |
1614 msg = ('revlog.revision(..., raw=True) is deprecated, ' | 1614 msg = ('revlog.revision(..., raw=True) is deprecated, ' |
1615 'use revlog.rawdata(...)') | 1615 'use revlog.rawdata(...)') |
1616 util.nouideprecwarn(msg, '5.2', stacklevel=2) | 1616 util.nouideprecwarn(msg, '5.2', stacklevel=2) |
1617 return self._revisiondata(nodeorrev, _df, raw=raw) | 1617 return self._revisiondata(nodeorrev, _df, raw=raw)[0] |
1618 | 1618 |
1619 def sidedata(self, nodeorrev, _df=None): | 1619 def sidedata(self, nodeorrev, _df=None): |
1620 """a map of extra data related to the changeset but not part of the hash | 1620 """a map of extra data related to the changeset but not part of the hash |
1621 | 1621 |
1622 This function currently return a dictionary. However, more advanced | 1622 This function currently return a dictionary. However, more advanced |
1635 node = nodeorrev | 1635 node = nodeorrev |
1636 rev = None | 1636 rev = None |
1637 | 1637 |
1638 # fast path the special `nullid` rev | 1638 # fast path the special `nullid` rev |
1639 if node == nullid: | 1639 if node == nullid: |
1640 return "" | 1640 return "", {} |
1641 | 1641 |
1642 # The text as stored inside the revlog. Might be the revision or might | 1642 # The text as stored inside the revlog. Might be the revision or might |
1643 # need to be processed to retrieve the revision. | 1643 # need to be processed to retrieve the revision. |
1644 rawtext = None | 1644 rawtext = None |
1645 | 1645 |
1646 rev, rawtext, validated = self._rawtext(node, rev, _df=_df) | 1646 rev, rawtext, validated = self._rawtext(node, rev, _df=_df) |
1647 | 1647 |
1648 if raw and validated: | 1648 if raw and validated: |
1649 # if we don't want to process the raw text and that raw | 1649 # if we don't want to process the raw text and that raw |
1650 # text is cached, we can exit early. | 1650 # text is cached, we can exit early. |
1651 return rawtext | 1651 return rawtext, {} |
1652 if rev is None: | 1652 if rev is None: |
1653 rev = self.rev(node) | 1653 rev = self.rev(node) |
1654 # the revlog's flag for this revision | 1654 # the revlog's flag for this revision |
1655 # (usually alter its state or content) | 1655 # (usually alter its state or content) |
1656 flags = self.flags(rev) | 1656 flags = self.flags(rev) |
1657 | 1657 |
1658 if validated and flags == REVIDX_DEFAULT_FLAGS: | 1658 if validated and flags == REVIDX_DEFAULT_FLAGS: |
1659 # no extra flags set, no flag processor runs, text = rawtext | 1659 # no extra flags set, no flag processor runs, text = rawtext |
1660 return rawtext | 1660 return rawtext, {} |
1661 | 1661 |
1662 sidedata = {} | |
1662 if raw: | 1663 if raw: |
1663 validatehash = self._processflagsraw(rawtext, flags) | 1664 validatehash = self._processflagsraw(rawtext, flags) |
1664 text = rawtext | 1665 text = rawtext |
1665 else: | 1666 else: |
1666 text, validatehash = self._processflagsread(rawtext, flags) | 1667 text, validatehash = self._processflagsread(rawtext, flags) |
1667 if validatehash: | 1668 if validatehash: |
1668 self.checkhash(text, node, rev=rev) | 1669 self.checkhash(text, node, rev=rev) |
1669 if not validated: | 1670 if not validated: |
1670 self._revisioncache = (node, rev, rawtext) | 1671 self._revisioncache = (node, rev, rawtext) |
1671 | 1672 |
1672 return text | 1673 return text, sidedata |
1673 | 1674 |
1674 def _rawtext(self, node, rev, _df=None): | 1675 def _rawtext(self, node, rev, _df=None): |
1675 """return the possibly unvalidated rawtext for a revision | 1676 """return the possibly unvalidated rawtext for a revision |
1676 | 1677 |
1677 returns (rev, rawtext, validated) | 1678 returns (rev, rawtext, validated) |
1717 def rawdata(self, nodeorrev, _df=None): | 1718 def rawdata(self, nodeorrev, _df=None): |
1718 """return an uncompressed raw data of a given node or revision number. | 1719 """return an uncompressed raw data of a given node or revision number. |
1719 | 1720 |
1720 _df - an existing file handle to read from. (internal-only) | 1721 _df - an existing file handle to read from. (internal-only) |
1721 """ | 1722 """ |
1722 return self._revisiondata(nodeorrev, _df, raw=True) | 1723 return self._revisiondata(nodeorrev, _df, raw=True)[0] |
1723 | 1724 |
1724 def hash(self, text, p1, p2): | 1725 def hash(self, text, p1, p2): |
1725 """Compute a node hash. | 1726 """Compute a node hash. |
1726 | 1727 |
1727 Available as a function so that subclasses can replace the hash | 1728 Available as a function so that subclasses can replace the hash |