D4756: storageutil: new function for extracting metadata-less content from text
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Wed Sep 26 21:13:05 UTC 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG15d588cfbf64: storageutil: new function for extracting metadata-less content from text (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4756?vs=11411&id=11432
REVISION DETAIL
https://phab.mercurial-scm.org/D4756
AFFECTED FILES
mercurial/filelog.py
mercurial/utils/storageutil.py
CHANGE DETAILS
diff --git a/mercurial/utils/storageutil.py b/mercurial/utils/storageutil.py
--- a/mercurial/utils/storageutil.py
+++ b/mercurial/utils/storageutil.py
@@ -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:]
diff --git a/mercurial/filelog.py b/mercurial/filelog.py
--- a/mercurial/filelog.py
+++ b/mercurial/filelog.py
@@ -113,11 +113,7 @@
return self._revlog.files()
def read(self, node):
- t = self.revision(node)
- if not t.startswith('\1\n'):
- return t
- s = t.index('\1\n', 2)
- return t[s + 2:]
+ return storageutil.filtermetadata(self.revision(node))
def add(self, text, meta, transaction, link, p1=None, p2=None):
if meta or text.startswith('\1\n'):
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list