Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 36008:1f2b8a644dd4
revlog: use context manager for index file life time in __init__
This is clearer, safer and more modern.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Mon, 05 Feb 2018 17:34:19 +0100 |
parents | 91b3b11565e5 |
children | 69cf2e422490 |
comparison
equal
deleted
inserted
replaced
36007:91b3b11565e5 | 36008:1f2b8a644dd4 |
---|---|
619 'of 2') % self._chunkcachesize) | 619 'of 2') % self._chunkcachesize) |
620 | 620 |
621 indexdata = '' | 621 indexdata = '' |
622 self._initempty = True | 622 self._initempty = True |
623 try: | 623 try: |
624 f = self._indexfp() | 624 with self._indexfp() as f: |
625 if (mmapindexthreshold is not None and | 625 if (mmapindexthreshold is not None and |
626 self.opener.fstat(f).st_size >= mmapindexthreshold): | 626 self.opener.fstat(f).st_size >= mmapindexthreshold): |
627 indexdata = util.buffer(util.mmapread(f)) | 627 indexdata = util.buffer(util.mmapread(f)) |
628 else: | 628 else: |
629 indexdata = f.read() | 629 indexdata = f.read() |
630 f.close() | |
631 if len(indexdata) > 0: | 630 if len(indexdata) > 0: |
632 v = versionformat_unpack(indexdata[:4])[0] | 631 v = versionformat_unpack(indexdata[:4])[0] |
633 self._initempty = False | 632 self._initempty = False |
634 except IOError as inst: | 633 except IOError as inst: |
635 if inst.errno != errno.ENOENT: | 634 if inst.errno != errno.ENOENT: |