mercurial/revlog.py
changeset 39878 3e896b51aa5d
parent 39877 f8eb71f9e3bd
child 39879 d269ddbf54f0
--- a/mercurial/revlog.py	Mon Sep 24 14:23:54 2018 -0700
+++ b/mercurial/revlog.py	Mon Sep 24 14:31:31 2018 -0700
@@ -17,7 +17,6 @@
 import contextlib
 import errno
 import os
-import re
 import struct
 import zlib
 
@@ -127,27 +126,8 @@
     ellipsisrawprocessor,
 )
 
-_mdre = re.compile('\1\n')
-def parsemeta(text):
-    """return (metadatadict, metadatasize)"""
-    # text can be buffer, so we can't use .startswith or .index
-    if text[:2] != '\1\n':
-        return None, None
-    s = _mdre.search(text, 2).start()
-    mtext = text[2:s]
-    meta = {}
-    for l in mtext.splitlines():
-        k, v = l.split(": ", 1)
-        meta[k] = v
-    return meta, (s + 2)
-
-def packmeta(meta, text):
-    keys = sorted(meta)
-    metatext = "".join("%s: %s\n" % (k, meta[k]) for k in keys)
-    return "\1\n%s\1\n%s" % (metatext, text)
-
 def _censoredtext(text):
-    m, offs = parsemeta(text)
+    m, offs = storageutil.parsemeta(text)
     return m and "censored" in m
 
 def addflagprocessor(flag, processor):
@@ -2516,7 +2496,7 @@
                                     self.version)
 
         rev = self.rev(node)
-        tombstone = packmeta({b'censored': tombstone}, b'')
+        tombstone = storageutil.packmeta({b'censored': tombstone}, b'')
 
         if len(tombstone) > self.rawsize(rev):
             raise error.Abort(_('censor tombstone must be no longer than '