D6889: sidedata: add a new module with basic documentation

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Tue Oct 1 18:22:32 UTC 2019


Closed by commit rHG21025a4107d4: sidedata: add a new module with basic documentation (authored by marmoute).
This revision was automatically updated to reflect the committed changes.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D6889?vs=16647&id=16761

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D6889/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D6889

AFFECTED FILES
  mercurial/revlogutils/sidedata.py

CHANGE DETAILS

diff --git a/mercurial/revlogutils/sidedata.py b/mercurial/revlogutils/sidedata.py
new file mode 100644
--- /dev/null
+++ b/mercurial/revlogutils/sidedata.py
@@ -0,0 +1,34 @@
+# sidedata.py - Logic around store extra data alongside revlog revisions
+#
+# Copyright 2019 Pierre-Yves David <pierre-yves.david at octobus.net)
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+"""core code for "sidedata" support
+
+The "sidedata" are stored alongside the revision without actually being part of
+its content and not affecting its hash. It's main use cases is to cache
+important information related to a changesets.
+
+The current implementation is experimental and subject to changes. Do not rely
+on it in production.
+
+Sidedata are stored in the revlog itself, withing the revision rawtext. They
+are inserted, removed from it using the flagprocessors mechanism. The following
+format is currently used::
+
+    initial header:
+        <number of sidedata; 2 bytes>
+    sidedata (repeated N times):
+        <sidedata-key; 2 bytes>
+        <sidedata-entry-length: 4 bytes>
+        <sidedata-content-sha1-digest: 20 bytes>
+        <sidedata-content; X bytes>
+    normal raw text:
+        <all bytes remaining in the rawtext>
+
+This is a simple and effective format. It should be enought to experiment with
+the concept.
+"""
+
+from __future__ import absolute_import



To: marmoute, durin42, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list