comparison mercurial/obsolete.py @ 32596:19df975eb555

obsolete: raise richer exception on unknown version We raise a more precise subclass of Abort with details about the faulty version. This will be used to detect this case and display some information in debugbundle.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 25 May 2017 16:50:23 +0200
parents 176d1a0ce385
children 00a7f7b1af9c
comparison
equal deleted inserted replaced
32595:9e46627baa3c 32596:19df975eb555
444 """Read and enumerate markers from raw data""" 444 """Read and enumerate markers from raw data"""
445 off = 0 445 off = 0
446 diskversion = _unpack('>B', data[off:off + 1])[0] 446 diskversion = _unpack('>B', data[off:off + 1])[0]
447 off += 1 447 off += 1
448 if diskversion not in formats: 448 if diskversion not in formats:
449 raise error.Abort(_('parsing obsolete marker: unknown version %r') 449 msg = _('parsing obsolete marker: unknown version %r') % diskversion
450 % diskversion) 450 raise error.UnknownVersion(msg, version=diskversion)
451 return diskversion, formats[diskversion][0](data, off) 451 return diskversion, formats[diskversion][0](data, off)
452 452
453 def encodemarkers(markers, addheader=False, version=_fm0version): 453 def encodemarkers(markers, addheader=False, version=_fm0version):
454 # Kept separate from flushmarkers(), it will be reused for 454 # Kept separate from flushmarkers(), it will be reused for
455 # markers exchange. 455 # markers exchange.