sidedata: add a function to write sidedata into a raw text
Differential Revision: https://phab.mercurial-scm.org/D6891
--- a/mercurial/revlogutils/sidedata.py Wed Sep 04 00:59:15 2019 +0200
+++ b/mercurial/revlogutils/sidedata.py Wed Sep 04 01:20:54 2019 +0200
@@ -41,6 +41,18 @@
SIDEDATA_HEADER = struct.Struct('>H')
SIDEDATA_ENTRY = struct.Struct('>HL20s')
+def sidedatawriteprocessor(rl, text, sidedata):
+ sidedata = list(sidedata.items())
+ sidedata.sort()
+ rawtext = [SIDEDATA_HEADER.pack(len(sidedata))]
+ for key, value in sidedata:
+ digest = hashlib.sha1(value).digest()
+ rawtext.append(SIDEDATA_ENTRY.pack(key, len(value), digest))
+ for key, value in sidedata:
+ rawtext.append(value)
+ rawtext.append(bytes(text))
+ return ''.join(rawtext), False
+
def sidedatareadprocessor(rl, text):
sidedata = {}
offset = 0