# HG changeset patch # User Pierre-Yves David # Date 2021-05-03 20:48:31 # Node ID 87d057137f8215185ae9fb6e89ef60cf325d9da1 # Parent 2b69555e4875b924c33899e03943d65a4bd58378 revlog: apply compression mode while reading sidedata Right now, we only store things as PLAIN, but we are ready for some compression now. Future changeset will start using some. Differential Revision: https://phab.mercurial-scm.org/D10654 diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -2061,7 +2061,19 @@ class revlog(object): if sidedata_size == 0: return {} - segment = self._getsegment(sidedata_offset, sidedata_size) + comp_segment = self._getsegment(sidedata_offset, sidedata_size) + comp = self.index[rev][11] + if comp == COMP_MODE_PLAIN: + segment = comp_segment + elif comp == COMP_MODE_DEFAULT: + segment = self._decompressor(comp_segment) + elif comp == COMP_MODE_INLINE: + segment = self.decompress(comp_segment) + else: + msg = 'unknown compression mode %d' + msg %= comp + raise error.RevlogError(msg) + sidedata = sidedatautil.deserialize_sidedata(segment) return sidedata