Mercurial > public > mercurial-scm > hg
diff mercurial/utils/storageutil.py @ 39880:1b65fb4d43d6
storageutil: new function for extracting metadata-less content from text
Other storage backends will want to do this.
I'm not concerned about Python function call overhead because I
expect self.revision() to dwarf the function call overhead time,
since self.revision() requires multiple function calls and may
involve decompression in the common case.
Differential Revision: https://phab.mercurial-scm.org/D4756
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 24 Sep 2018 14:54:28 -0700 |
parents | d269ddbf54f0 |
children | d63153611ed5 |
line wrap: on
line diff
--- a/mercurial/utils/storageutil.py Mon Sep 24 14:33:45 2018 -0700 +++ b/mercurial/utils/storageutil.py Mon Sep 24 14:54:28 2018 -0700 @@ -69,3 +69,15 @@ def iscensoredtext(text): meta = parsemeta(text)[0] return meta and b'censored' in meta + +def filtermetadata(text): + """Extract just the revision data from source text. + + Returns ``text`` unless it has a metadata header, in which case we return + a new buffer without hte metadata. + """ + if not text.startswith(b'\x01\n'): + return text + + offset = text.index(b'\x01\n', 2) + return text[offset + 2:]