Show More
@@ -173,9 +173,28 b' def _readmarkers(data):' | |||||
173 | date = util.parsedate(decodemeta(metadata).pop('date', '0 0')) |
|
173 | date = util.parsedate(decodemeta(metadata).pop('date', '0 0')) | |
174 | except util.Abort: |
|
174 | except util.Abort: | |
175 | date = (0., 0) |
|
175 | date = (0., 0) | |
|
176 | parents = None | |||
|
177 | if 'p2' in meta: | |||
|
178 | parents = (meta.pop('p1', None), meta.pop('p2', None)) | |||
|
179 | elif 'p1' in meta: | |||
|
180 | parents = (meta.pop('p1', None),) | |||
|
181 | elif 'p0' in meta: | |||
|
182 | parents = () | |||
|
183 | if parents is not None: | |||
|
184 | try: | |||
|
185 | parents = tuple(node.bin(p) for p in parents) | |||
|
186 | # if parent content is not a nodeid, drop the data | |||
|
187 | for p in parents: | |||
|
188 | if len(p) != 20: | |||
|
189 | parents = None | |||
|
190 | break | |||
|
191 | except TypeError: | |||
|
192 | # if content cannot be translated to nodeid drop the data. | |||
|
193 | parents = None | |||
|
194 | ||||
176 | metadata = encodemeta(meta) |
|
195 | metadata = encodemeta(meta) | |
177 |
|
196 | |||
178 |
yield (pre, sucs, flags, metadata, date, |
|
197 | yield (pre, sucs, flags, metadata, date, parents) | |
179 |
|
198 | |||
180 | def encodemeta(meta): |
|
199 | def encodemeta(meta): | |
181 | """Return encoded metadata string to string mapping. |
|
200 | """Return encoded metadata string to string mapping. | |
@@ -371,6 +390,12 b' def _encodeonemarker(marker):' | |||||
371 | pre, sucs, flags, metadata, date, parents = marker |
|
390 | pre, sucs, flags, metadata, date, parents = marker | |
372 | metadata = decodemeta(metadata) |
|
391 | metadata = decodemeta(metadata) | |
373 | metadata['date'] = '%d %i' % date |
|
392 | metadata['date'] = '%d %i' % date | |
|
393 | if parents is not None: | |||
|
394 | if not parents: | |||
|
395 | # mark that we explicitly recorded no parents | |||
|
396 | metadata['p0'] = '' | |||
|
397 | for i, p in enumerate(parents, 1): | |||
|
398 | metadata['p%i' % i] = node.hex(p) | |||
374 | metadata = encodemeta(metadata) |
|
399 | metadata = encodemeta(metadata) | |
375 | nbsuc = len(sucs) |
|
400 | nbsuc = len(sucs) | |
376 | format = _fmfixed + (_fmnode * nbsuc) |
|
401 | format = _fmfixed + (_fmnode * nbsuc) |
General Comments 0
You need to be logged in to leave comments.
Login now