mercurial/obsolete.py
changeset 48913 f254fc73d956
parent 48875 6000f5b25c9b
child 48946 642e31cb55f0
equal deleted inserted replaced
48912:a0674e916fb6 48913:f254fc73d956
   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')