mercurial/revlogutils/__init__.py
changeset 47395 a669404f0f4a
parent 47394 ac60a1366a49
child 47399 34cc102c73f5
--- a/mercurial/revlogutils/__init__.py	Sun May 30 16:19:36 2021 +0200
+++ b/mercurial/revlogutils/__init__.py	Sun May 30 17:10:56 2021 +0200
@@ -9,8 +9,50 @@
 
 from ..interfaces import repository
 
+# See mercurial.revlogutils.constants for doc
+COMP_MODE_INLINE = 2
+
 
 def offset_type(offset, type):
     if (type & ~repository.REVISION_FLAGS_KNOWN) != 0:
         raise ValueError(b'unknown revlog index flags: %d' % type)
     return int(int(offset) << 16 | type)
+
+
+def entry(
+    data_offset,
+    data_compressed_length,
+    data_delta_base,
+    link_rev,
+    parent_rev_1,
+    parent_rev_2,
+    node_id,
+    flags=0,
+    data_uncompressed_length=-1,
+    data_compression_mode=COMP_MODE_INLINE,
+    sidedata_offset=0,
+    sidedata_compressed_length=0,
+    sidedata_compression_mode=COMP_MODE_INLINE,
+):
+    """Build one entry from symbolic name
+
+    This is useful to abstract the actual detail of how we build the entry
+    tuple for caller who don't care about it.
+
+    This should always be called using keyword arguments. Some arguments have
+    default value, this match the value used by index version that does not store such data.
+    """
+    return (
+        offset_type(data_offset, flags),
+        data_compressed_length,
+        data_uncompressed_length,
+        data_delta_base,
+        link_rev,
+        parent_rev_1,
+        parent_rev_2,
+        node_id,
+        sidedata_offset,
+        sidedata_compressed_length,
+        data_compression_mode,
+        sidedata_compression_mode,
+    )