Show More
@@ -80,6 +80,7 b' from . import (' | |||
|
80 | 80 | obsutil, |
|
81 | 81 | phases, |
|
82 | 82 | policy, |
|
83 | pycompat, | |
|
83 | 84 | util, |
|
84 | 85 | ) |
|
85 | 86 | from .utils import dateutil |
@@ -600,6 +601,16 b' class obsstore(object):' | |||
|
600 | 601 | raise ValueError(_('in-marker cycle with %s') % node.hex(prec)) |
|
601 | 602 | |
|
602 | 603 | metadata = tuple(sorted(metadata.iteritems())) |
|
604 | for k, v in metadata: | |
|
605 | try: | |
|
606 | # might be better to reject non-ASCII keys | |
|
607 | k.decode('utf-8') | |
|
608 | v.decode('utf-8') | |
|
609 | except UnicodeDecodeError: | |
|
610 | raise error.ProgrammingError( | |
|
611 | 'obsstore metadata must be valid UTF-8 sequence ' | |
|
612 | '(key = %r, value = %r)' | |
|
613 | % (pycompat.bytestr(k), pycompat.bytestr(v))) | |
|
603 | 614 | |
|
604 | 615 | marker = (bytes(prec), tuple(succs), int(flag), metadata, date, parents) |
|
605 | 616 | return bool(self.add(transaction, [marker])) |
General Comments 0
You need to be logged in to leave comments.
Login now