[PATCH 02 of 10] introduced filelog._parsemeta() to avoid infinite recursion
Sune Foldager
cryo at cyanite.org
Wed Sep 8 14:48:15 CDT 2010
# HG changeset patch
# User Sune Foldager <sune.foldager at edlund.dk>
# Date 1282639644 -7200
# Node ID 535a7795f14b5a3ded71009aa06fa46498770d80
# Parent 4d7896b3d7c87241e070b5672e9e1db3f1fbe757
introduced filelog._parsemeta() to avoid infinite recursion
* * *
text unpacking needs instance of str
diff --git a/mercurial/filelog.py b/mercurial/filelog.py
--- a/mercurial/filelog.py
+++ b/mercurial/filelog.py
@@ -20,16 +20,7 @@
return t[s + 2:]
def _readmeta(self, node):
- t = self.revision(node)
- if not t.startswith('\1\n'):
- return {}
- s = t.index('\1\n', 2)
- mt = t[2:s]
- m = {}
- for l in mt.splitlines():
- k, v = l.split(": ", 1)
- m[k] = v
- return m
+ return _parsemeta(self.revision(node))
def add(self, text, meta, transaction, link, p1=None, p2=None):
if meta or text.startswith('\1\n'):
@@ -77,3 +68,15 @@
return t2 != text
return True
+
+def _parsemeta(t):
+ # t can be buffer, so we can't use .startswith
+ if t[:2] != '\1\n':
+ return {}
+ s = t.index('\1\n', 2)
+ mt = t[2:s]
+ m = {}
+ for l in mt.splitlines():
+ k, v = l.split(": ", 1)
+ m[k] = v
+ return m
More information about the Mercurial-devel
mailing list