comparison mercurial/revlog.py @ 47386:0d0fb091c49f

revlog: simplify "partial read" error message We are about to reuse this message in more places and the current handling is pretty hard to read. So we eat two pie with one stone and clean up this. Differential Revision: https://phab.mercurial-scm.org/D10784
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 27 May 2021 04:09:10 +0200
parents 9d9eb22b9b69
children 75e1104f23a2
comparison
equal deleted inserted replaced
47385:9d9eb22b9b69 47386:0d0fb091c49f
253 253
254 254
255 # corresponds to uncompressed length of indexformatng (2 gigs, 4-byte 255 # corresponds to uncompressed length of indexformatng (2 gigs, 4-byte
256 # signed integer) 256 # signed integer)
257 _maxentrysize = 0x7FFFFFFF 257 _maxentrysize = 0x7FFFFFFF
258
259 PARTIAL_READ_MSG = _(
260 b'partial read of revlog %s; expected %d bytes from offset %d, got %d'
261 )
258 262
259 263
260 class revlog(object): 264 class revlog(object):
261 """ 265 """
262 the underlying revision storage object 266 the underlying revision storage object
1707 1711
1708 self._cachesegment(realoffset, d) 1712 self._cachesegment(realoffset, d)
1709 if offset != realoffset or reallength != length: 1713 if offset != realoffset or reallength != length:
1710 startoffset = offset - realoffset 1714 startoffset = offset - realoffset
1711 if len(d) - startoffset < length: 1715 if len(d) - startoffset < length:
1712 raise error.RevlogError( 1716 filename = self._indexfile if self._inline else self._datafile
1713 _( 1717 got = len(d) - startoffset
1714 b'partial read of revlog %s; expected %d bytes from ' 1718 m = PARTIAL_READ_MSG % (filename, length, offset, got)
1715 b'offset %d, got %d' 1719 raise error.RevlogError(m)
1716 )
1717 % (
1718 self._indexfile if self._inline else self._datafile,
1719 length,
1720 offset,
1721 len(d) - startoffset,
1722 )
1723 )
1724
1725 return util.buffer(d, startoffset, length) 1720 return util.buffer(d, startoffset, length)
1726 1721
1727 if len(d) < length: 1722 if len(d) < length:
1728 raise error.RevlogError( 1723 filename = self._indexfile if self._inline else self._datafile
1729 _( 1724 got = len(d) - startoffset
1730 b'partial read of revlog %s; expected %d bytes from offset ' 1725 m = PARTIAL_READ_MSG % (filename, length, offset, got)
1731 b'%d, got %d' 1726 raise error.RevlogError(m)
1732 )
1733 % (
1734 self._indexfile if self._inline else self._datafile,
1735 length,
1736 offset,
1737 len(d),
1738 )
1739 )
1740 1727
1741 return d 1728 return d
1742 1729
1743 def _getsegment(self, offset, length, df=None): 1730 def _getsegment(self, offset, length, df=None):
1744 """Obtain a segment of raw data from the revlog. 1731 """Obtain a segment of raw data from the revlog.