Mercurial > hg-stable
changeset 47405:34cc102c73f5
revlog: move `revisioninfo` in `revlogutils`
We will need it in other utility module. So lets extract it from `revlog.py`,
the module is too large already anyway.
Differential Revision: https://phab.mercurial-scm.org/D10797
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 30 May 2021 16:20:36 +0200 |
parents | 53289d02037a |
children | 9b841267253c |
files | mercurial/revlog.py mercurial/revlogutils/__init__.py mercurial/revlogutils/deltas.py |
diffstat | 3 files changed, 32 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revlog.py Sun May 30 17:11:49 2021 +0200 +++ b/mercurial/revlog.py Sun May 30 16:20:36 2021 +0200 @@ -167,27 +167,6 @@ ) -@attr.s(slots=True, frozen=True) -class _revisioninfo(object): - """Information about a revision that allows building its fulltext - node: expected hash of the revision - p1, p2: parent revs of the revision - btext: built text cache consisting of a one-element list - cachedelta: (baserev, uncompressed_delta) or None - flags: flags associated to the revision storage - - One of btext[0] or cachedelta must be set. - """ - - node = attr.ib() - p1 = attr.ib() - p2 = attr.ib() - btext = attr.ib() - textlen = attr.ib() - cachedelta = attr.ib() - flags = attr.ib() - - @interfaceutil.implementer(repository.irevisiondelta) @attr.s(slots=True) class revlogrevisiondelta(object): @@ -2534,7 +2513,15 @@ if deltacomputer is None: deltacomputer = deltautil.deltacomputer(self) - revinfo = _revisioninfo(node, p1, p2, btext, textlen, cachedelta, flags) + revinfo = revlogutils.revisioninfo( + node, + p1, + p2, + btext, + textlen, + cachedelta, + flags, + ) deltainfo = deltacomputer.finddeltainfo(revinfo, fh)
--- a/mercurial/revlogutils/__init__.py Sun May 30 17:11:49 2021 +0200 +++ b/mercurial/revlogutils/__init__.py Sun May 30 16:20:36 2021 +0200 @@ -7,6 +7,7 @@ from __future__ import absolute_import +from ..thirdparty import attr from ..interfaces import repository # See mercurial.revlogutils.constants for doc @@ -56,3 +57,24 @@ data_compression_mode, sidedata_compression_mode, ) + + +@attr.s(slots=True, frozen=True) +class revisioninfo(object): + """Information about a revision that allows building its fulltext + node: expected hash of the revision + p1, p2: parent revs of the revision + btext: built text cache consisting of a one-element list + cachedelta: (baserev, uncompressed_delta) or None + flags: flags associated to the revision storage + + One of btext[0] or cachedelta must be set. + """ + + node = attr.ib() + p1 = attr.ib() + p2 = attr.ib() + btext = attr.ib() + textlen = attr.ib() + cachedelta = attr.ib() + flags = attr.ib()
--- a/mercurial/revlogutils/deltas.py Sun May 30 17:11:49 2021 +0200 +++ b/mercurial/revlogutils/deltas.py Sun May 30 16:20:36 2021 +0200 @@ -932,7 +932,7 @@ def buildtext(self, revinfo, fh): """Builds a fulltext version of a revision - revinfo: _revisioninfo instance that contains all needed info + revinfo: revisioninfo instance that contains all needed info fh: file handle to either the .i or the .d revlog file, depending on whether it is inlined or not """