--- a/mercurial/obsolete.py Fri Jan 23 15:11:25 2015 -0500
+++ b/mercurial/obsolete.py Tue Jan 20 13:38:07 2015 -0500
@@ -68,7 +68,7 @@
"""
import struct
-import util, base85, node
+import util, base85, node, parsers
import phases
from i18n import _
@@ -301,6 +301,15 @@
# Loop on markers
stop = len(data) - _fm1fsize
ufixed = util.unpacker(_fm1fixed)
+
+ fast = getattr(parsers, 'fm1readmarker', None)
+ if fast is not None:
+ while off <= stop:
+ ret = fast(data, off)
+ yield ret[1:]
+ off += ret[0]
+ return
+
while off <= stop:
# read fixed part
o1 = off + fsize