Mercurial > hg
comparison mercurial/obsolete.py @ 22330:e74f8a65252d
obsolete: move _fm0encodeonemarker next to _fm0readmarkers
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 25 Aug 2014 16:09:18 +0200 |
parents | ed37aa74d208 |
children | b130b241718e |
comparison
equal
deleted
inserted
replaced
22329:ed37aa74d208 | 22330:e74f8a65252d |
---|---|
198 | 198 |
199 metadata = encodemeta(meta) | 199 metadata = encodemeta(meta) |
200 | 200 |
201 yield (pre, sucs, flags, metadata, date, parents) | 201 yield (pre, sucs, flags, metadata, date, parents) |
202 | 202 |
203 def _fm0encodeonemarker(marker): | |
204 pre, sucs, flags, metadata, date, parents = marker | |
205 metadata = decodemeta(metadata) | |
206 metadata['date'] = '%d %i' % date | |
207 if parents is not None: | |
208 if not parents: | |
209 # mark that we explicitly recorded no parents | |
210 metadata['p0'] = '' | |
211 for i, p in enumerate(parents): | |
212 metadata['p%i' % (i + 1)] = node.hex(p) | |
213 metadata = encodemeta(metadata) | |
214 nbsuc = len(sucs) | |
215 format = _fm0fixed + (_fm0node * nbsuc) | |
216 data = [nbsuc, len(metadata), flags, pre] | |
217 data.extend(sucs) | |
218 return _pack(format, *data) + metadata | |
219 | |
203 def encodemeta(meta): | 220 def encodemeta(meta): |
204 """Return encoded metadata string to string mapping. | 221 """Return encoded metadata string to string mapping. |
205 | 222 |
206 Assume no ':' in key and no '\0' in both key and value.""" | 223 Assume no ':' in key and no '\0' in both key and value.""" |
207 for key, value in meta.iteritems(): | 224 for key, value in meta.iteritems(): |
427 if addheader: | 444 if addheader: |
428 yield _pack('>B', _fm0version) | 445 yield _pack('>B', _fm0version) |
429 for marker in markers: | 446 for marker in markers: |
430 yield _fm0encodeonemarker(marker) | 447 yield _fm0encodeonemarker(marker) |
431 | 448 |
432 | |
433 def _fm0encodeonemarker(marker): | |
434 pre, sucs, flags, metadata, date, parents = marker | |
435 metadata = decodemeta(metadata) | |
436 metadata['date'] = '%d %i' % date | |
437 if parents is not None: | |
438 if not parents: | |
439 # mark that we explicitly recorded no parents | |
440 metadata['p0'] = '' | |
441 for i, p in enumerate(parents): | |
442 metadata['p%i' % (i + 1)] = node.hex(p) | |
443 metadata = encodemeta(metadata) | |
444 nbsuc = len(sucs) | |
445 format = _fm0fixed + (_fm0node * nbsuc) | |
446 data = [nbsuc, len(metadata), flags, pre] | |
447 data.extend(sucs) | |
448 return _pack(format, *data) + metadata | |
449 | 449 |
450 # arbitrary picked to fit into 8K limit from HTTP server | 450 # arbitrary picked to fit into 8K limit from HTTP server |
451 # you have to take in account: | 451 # you have to take in account: |
452 # - the version header | 452 # - the version header |
453 # - the base85 encoding | 453 # - the base85 encoding |