equal
deleted
inserted
replaced
246 break |
246 break |
247 except TypeError: |
247 except TypeError: |
248 # if content cannot be translated to nodeid drop the data. |
248 # if content cannot be translated to nodeid drop the data. |
249 parents = None |
249 parents = None |
250 |
250 |
251 metadata = tuple(sorted(pycompat.iteritems(metadata))) |
251 metadata = tuple(sorted(metadata.items())) |
252 |
252 |
253 yield (pre, sucs, flags, metadata, date, parents) |
253 yield (pre, sucs, flags, metadata, date, parents) |
254 |
254 |
255 |
255 |
256 def _fm0encodeonemarker(marker): |
256 def _fm0encodeonemarker(marker): |
276 |
276 |
277 def _fm0encodemeta(meta): |
277 def _fm0encodemeta(meta): |
278 """Return encoded metadata string to string mapping. |
278 """Return encoded metadata string to string mapping. |
279 |
279 |
280 Assume no ':' in key and no '\0' in both key and value.""" |
280 Assume no ':' in key and no '\0' in both key and value.""" |
281 for key, value in pycompat.iteritems(meta): |
281 for key, value in meta.items(): |
282 if b':' in key or b'\0' in key: |
282 if b':' in key or b'\0' in key: |
283 raise ValueError(b"':' and '\0' are forbidden in metadata key'") |
283 raise ValueError(b"':' and '\0' are forbidden in metadata key'") |
284 if b'\0' in value: |
284 if b'\0' in value: |
285 raise ValueError(b"':' is forbidden in metadata value'") |
285 raise ValueError(b"':' is forbidden in metadata value'") |
286 return b'\0'.join([b'%s:%s' % (k, meta[k]) for k in sorted(meta)]) |
286 return b'\0'.join([b'%s:%s' % (k, meta[k]) for k in sorted(meta)]) |
650 if prec in succs: |
650 if prec in succs: |
651 raise ValueError( |
651 raise ValueError( |
652 'in-marker cycle with %s' % pycompat.sysstr(hex(prec)) |
652 'in-marker cycle with %s' % pycompat.sysstr(hex(prec)) |
653 ) |
653 ) |
654 |
654 |
655 metadata = tuple(sorted(pycompat.iteritems(metadata))) |
655 metadata = tuple(sorted(metadata.items())) |
656 for k, v in metadata: |
656 for k, v in metadata: |
657 try: |
657 try: |
658 # might be better to reject non-ASCII keys |
658 # might be better to reject non-ASCII keys |
659 k.decode('utf-8') |
659 k.decode('utf-8') |
660 v.decode('utf-8') |
660 v.decode('utf-8') |