comparison mercurial/obsolete.py @ 32689:9933410bf763

obsstore: move marker version reading to a separate function This allows us to read marker version without reading markers.
author Jun Wu <quark@fb.com>
date Fri, 02 Jun 2017 19:34:56 -0700
parents 2c1400d43fd2
children 3fad59faba8a
comparison
equal deleted inserted replaced
32688:2c1400d43fd2 32689:9933410bf763
437 # mapping to read/write various marker formats 437 # mapping to read/write various marker formats
438 # <version> -> (decoder, encoder) 438 # <version> -> (decoder, encoder)
439 formats = {_fm0version: (_fm0readmarkers, _fm0encodeonemarker), 439 formats = {_fm0version: (_fm0readmarkers, _fm0encodeonemarker),
440 _fm1version: (_fm1readmarkers, _fm1encodeonemarker)} 440 _fm1version: (_fm1readmarkers, _fm1encodeonemarker)}
441 441
442 def _readmarkerversion(data):
443 return _unpack('>B', data[0:1])[0]
444
442 @util.nogc 445 @util.nogc
443 def _readmarkers(data): 446 def _readmarkers(data):
444 """Read and enumerate markers from raw data""" 447 """Read and enumerate markers from raw data"""
445 off = 0 448 diskversion = _readmarkerversion(data)
446 diskversion = _unpack('>B', data[off:off + 1])[0] 449 off = 1
447 off += 1
448 if diskversion not in formats: 450 if diskversion not in formats:
449 msg = _('parsing obsolete marker: unknown version %r') % diskversion 451 msg = _('parsing obsolete marker: unknown version %r') % diskversion
450 raise error.UnknownVersion(msg, version=diskversion) 452 raise error.UnknownVersion(msg, version=diskversion)
451 return diskversion, formats[diskversion][0](data, off) 453 return diskversion, formats[diskversion][0](data, off)
452 454