diff mercurial/revlogutils/__init__.py @ 47399: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 a669404f0f4a
children 52034c42c09d
line wrap: on
line diff
--- 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()