mercurial/manifest.py
changeset 24215 feddc5284724
parent 24184 cd66080ef6d4
child 24223 b4df0d0c49e7
equal deleted inserted replaced
24214:a5f1bccd2996 24215:feddc5284724
   215 
   215 
   216     deltatext = "".join(struct.pack(">lll", start, end, len(content))
   216     deltatext = "".join(struct.pack(">lll", start, end, len(content))
   217                    + content for start, end, content in x)
   217                    + content for start, end, content in x)
   218     return deltatext, newaddlist
   218     return deltatext, newaddlist
   219 
   219 
       
   220 # Pure Python fallback
       
   221 def _parsemanifest(mfdict, fdict, lines):
       
   222     bin = revlog.bin
       
   223     for l in lines.splitlines():
       
   224         f, n = l.split('\0')
       
   225         if len(n) > 40:
       
   226             fdict[f] = n[40:]
       
   227             mfdict[f] = bin(n[:40])
       
   228         else:
       
   229             mfdict[f] = bin(n)
       
   230 
   220 def _parse(lines):
   231 def _parse(lines):
   221     mfdict = manifestdict()
   232     mfdict = manifestdict()
   222     parsers.parse_manifest(mfdict, mfdict._flags, lines)
   233     try:
       
   234         parsers.parse_manifest(mfdict, mfdict._flags, lines)
       
   235     except AttributeError:
       
   236         _parsemanifest(mfdict, mfdict._flags, lines)
   223     return mfdict
   237     return mfdict
   224 
   238 
   225 class manifest(revlog.revlog):
   239 class manifest(revlog.revlog):
   226     def __init__(self, opener):
   240     def __init__(self, opener):
   227         # During normal operations, we expect to deal with not more than four
   241         # During normal operations, we expect to deal with not more than four