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 |