Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 47385:9d9eb22b9b69
revlog: no longer return sidedata from `_revisiondata`
All users have been migrated.
When they was introduced sidedata where grouped with the actual revision data
and unpacking one came with the other. Sidedata moved be stored "independently"
and it no longer make sense to retrieve both at the same time unconditionnaly.
Differential Revision: https://phab.mercurial-scm.org/D10783
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 27 May 2021 03:41:02 +0200 |
parents | fec306b05328 |
children | 0d0fb091c49f |
comparison
equal
deleted
inserted
replaced
47384:fec306b05328 | 47385:9d9eb22b9b69 |
---|---|
1965 msg = ( | 1965 msg = ( |
1966 b'revlog.revision(..., raw=True) is deprecated, ' | 1966 b'revlog.revision(..., raw=True) is deprecated, ' |
1967 b'use revlog.rawdata(...)' | 1967 b'use revlog.rawdata(...)' |
1968 ) | 1968 ) |
1969 util.nouideprecwarn(msg, b'5.2', stacklevel=2) | 1969 util.nouideprecwarn(msg, b'5.2', stacklevel=2) |
1970 return self._revisiondata(nodeorrev, _df, raw=raw)[0] | 1970 return self._revisiondata(nodeorrev, _df, raw=raw) |
1971 | 1971 |
1972 def sidedata(self, nodeorrev, _df=None): | 1972 def sidedata(self, nodeorrev, _df=None): |
1973 """a map of extra data related to the changeset but not part of the hash | 1973 """a map of extra data related to the changeset but not part of the hash |
1974 | 1974 |
1975 This function currently return a dictionary. However, more advanced | 1975 This function currently return a dictionary. However, more advanced |
1992 node = nodeorrev | 1992 node = nodeorrev |
1993 rev = None | 1993 rev = None |
1994 | 1994 |
1995 # fast path the special `nullid` rev | 1995 # fast path the special `nullid` rev |
1996 if node == self.nullid: | 1996 if node == self.nullid: |
1997 return b"", {} | 1997 return b"" |
1998 | 1998 |
1999 # ``rawtext`` is the text as stored inside the revlog. Might be the | 1999 # ``rawtext`` is the text as stored inside the revlog. Might be the |
2000 # revision or might need to be processed to retrieve the revision. | 2000 # revision or might need to be processed to retrieve the revision. |
2001 rev, rawtext, validated = self._rawtext(node, rev, _df=_df) | 2001 rev, rawtext, validated = self._rawtext(node, rev, _df=_df) |
2002 | 2002 |
2003 if self.hassidedata: | |
2004 if rev is None: | |
2005 rev = self.rev(node) | |
2006 sidedata = self._sidedata(rev) | |
2007 else: | |
2008 sidedata = {} | |
2009 | |
2010 if raw and validated: | 2003 if raw and validated: |
2011 # if we don't want to process the raw text and that raw | 2004 # if we don't want to process the raw text and that raw |
2012 # text is cached, we can exit early. | 2005 # text is cached, we can exit early. |
2013 return rawtext, sidedata | 2006 return rawtext |
2014 if rev is None: | 2007 if rev is None: |
2015 rev = self.rev(node) | 2008 rev = self.rev(node) |
2016 # the revlog's flag for this revision | 2009 # the revlog's flag for this revision |
2017 # (usually alter its state or content) | 2010 # (usually alter its state or content) |
2018 flags = self.flags(rev) | 2011 flags = self.flags(rev) |
2019 | 2012 |
2020 if validated and flags == REVIDX_DEFAULT_FLAGS: | 2013 if validated and flags == REVIDX_DEFAULT_FLAGS: |
2021 # no extra flags set, no flag processor runs, text = rawtext | 2014 # no extra flags set, no flag processor runs, text = rawtext |
2022 return rawtext, sidedata | 2015 return rawtext |
2023 | 2016 |
2024 if raw: | 2017 if raw: |
2025 validatehash = flagutil.processflagsraw(self, rawtext, flags) | 2018 validatehash = flagutil.processflagsraw(self, rawtext, flags) |
2026 text = rawtext | 2019 text = rawtext |
2027 else: | 2020 else: |
2030 if validatehash: | 2023 if validatehash: |
2031 self.checkhash(text, node, rev=rev) | 2024 self.checkhash(text, node, rev=rev) |
2032 if not validated: | 2025 if not validated: |
2033 self._revisioncache = (node, rev, rawtext) | 2026 self._revisioncache = (node, rev, rawtext) |
2034 | 2027 |
2035 return text, sidedata | 2028 return text |
2036 | 2029 |
2037 def _rawtext(self, node, rev, _df=None): | 2030 def _rawtext(self, node, rev, _df=None): |
2038 """return the possibly unvalidated rawtext for a revision | 2031 """return the possibly unvalidated rawtext for a revision |
2039 | 2032 |
2040 returns (rev, rawtext, validated) | 2033 returns (rev, rawtext, validated) |
2107 def rawdata(self, nodeorrev, _df=None): | 2100 def rawdata(self, nodeorrev, _df=None): |
2108 """return an uncompressed raw data of a given node or revision number. | 2101 """return an uncompressed raw data of a given node or revision number. |
2109 | 2102 |
2110 _df - an existing file handle to read from. (internal-only) | 2103 _df - an existing file handle to read from. (internal-only) |
2111 """ | 2104 """ |
2112 return self._revisiondata(nodeorrev, _df, raw=True)[0] | 2105 return self._revisiondata(nodeorrev, _df, raw=True) |
2113 | 2106 |
2114 def hash(self, text, p1, p2): | 2107 def hash(self, text, p1, p2): |
2115 """Compute a node hash. | 2108 """Compute a node hash. |
2116 | 2109 |
2117 Available as a function so that subclasses can replace the hash | 2110 Available as a function so that subclasses can replace the hash |
3107 # (Possibly) reuse the delta from the revlog if allowed and | 3100 # (Possibly) reuse the delta from the revlog if allowed and |
3108 # the revlog chunk is a delta. | 3101 # the revlog chunk is a delta. |
3109 cachedelta = None | 3102 cachedelta = None |
3110 rawtext = None | 3103 rawtext = None |
3111 if deltareuse == self.DELTAREUSEFULLADD: | 3104 if deltareuse == self.DELTAREUSEFULLADD: |
3112 text = self._revisiondata(rev)[0] | 3105 text = self._revisiondata(rev) |
3113 sidedata = self.sidedata(rev) | 3106 sidedata = self.sidedata(rev) |
3114 | 3107 |
3115 if sidedata_helpers is not None: | 3108 if sidedata_helpers is not None: |
3116 (sidedata, new_flags) = sidedatautil.run_sidedata_helpers( | 3109 (sidedata, new_flags) = sidedatautil.run_sidedata_helpers( |
3117 self, sidedata_helpers, sidedata, rev | 3110 self, sidedata_helpers, sidedata, rev |
3136 if dp != nullrev: | 3129 if dp != nullrev: |
3137 cachedelta = (dp, bytes(self._chunk(rev))) | 3130 cachedelta = (dp, bytes(self._chunk(rev))) |
3138 | 3131 |
3139 sidedata = None | 3132 sidedata = None |
3140 if not cachedelta: | 3133 if not cachedelta: |
3141 rawtext = self._revisiondata(rev)[0] | 3134 rawtext = self._revisiondata(rev) |
3142 sidedata = self.sidedata(rev) | 3135 sidedata = self.sidedata(rev) |
3143 if sidedata is None: | 3136 if sidedata is None: |
3144 sidedata = self.sidedata(rev) | 3137 sidedata = self.sidedata(rev) |
3145 | 3138 |
3146 if sidedata_helpers is not None: | 3139 if sidedata_helpers is not None: |