Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 40055:0a4625ffd6c0
revlog: move loading of index data into own method
This will allow us to "reload" a revlog instance from a rewritten
index file, which will be used in a subsequent commit.
Differential Revision: https://phab.mercurial-scm.org/D4868
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 02 Oct 2018 17:28:54 -0700 |
parents | 801ccd8e67c0 |
children | 324b4b10351e |
comparison
equal
deleted
inserted
replaced
40054:801ccd8e67c0 | 40055:0a4625ffd6c0 |
---|---|
413 'greater than 0') % self._chunkcachesize) | 413 'greater than 0') % self._chunkcachesize) |
414 elif self._chunkcachesize & (self._chunkcachesize - 1): | 414 elif self._chunkcachesize & (self._chunkcachesize - 1): |
415 raise error.RevlogError(_('revlog chunk cache size %r is not a ' | 415 raise error.RevlogError(_('revlog chunk cache size %r is not a ' |
416 'power of 2') % self._chunkcachesize) | 416 'power of 2') % self._chunkcachesize) |
417 | 417 |
418 self._loadindex(v, mmapindexthreshold) | |
419 | |
420 def _loadindex(self, v, mmapindexthreshold): | |
418 indexdata = '' | 421 indexdata = '' |
419 self._initempty = True | 422 self._initempty = True |
420 try: | 423 try: |
421 with self._indexfp() as f: | 424 with self._indexfp() as f: |
422 if (mmapindexthreshold is not None and | 425 if (mmapindexthreshold is not None and |
423 self.opener.fstat(f).st_size >= mmapindexthreshold): | 426 self.opener.fstat(f).st_size >= mmapindexthreshold): |
424 indexdata = util.buffer(util.mmapread(f)) | 427 indexdata = util.buffer(util.mmapread(f)) |
425 else: | 428 else: |
426 indexdata = f.read() | 429 indexdata = f.read() |
427 if len(indexdata) > 0: | 430 if len(indexdata) > 0: |
428 v = versionformat_unpack(indexdata[:4])[0] | 431 v = versionformat_unpack(indexdata[:4])[0] |