diff --git a/mercurial/changelog.py b/mercurial/changelog.py --- a/mercurial/changelog.py +++ b/mercurial/changelog.py @@ -245,9 +245,10 @@ __slots__ = ( r'_offsets', r'_text', + r'_sidedata', ) - def __new__(cls, text): + def __new__(cls, text, sidedata): if not text: return _changelogrevision(extra=_defaultextra) @@ -279,6 +280,7 @@ self._offsets = (nl1, nl2, nl3, doublenl) self._text = text + self._sidedata = sidedata return self @@ -582,7 +584,7 @@ ``changelogrevision`` instead, as it is faster for partial object access. """ - c = changelogrevision(self.revision(node)) + c = changelogrevision(*self._revisiondata(node)) return ( c.manifest, c.user, @@ -594,7 +596,8 @@ def changelogrevision(self, nodeorrev): """Obtain a ``changelogrevision`` for a node or revision.""" - return changelogrevision(self.revision(nodeorrev)) + text, sidedata = self._revisiondata(nodeorrev) + return changelogrevision(text, sidedata) def readfiles(self, node): """