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: