# HG changeset patch # User Pulkit Goyal # Date 1555710496 -10800 # Node ID ececa45c80d867dfe10cd9561fffaefe491f50dd # Parent 09fd338522fa024974d650adcfa82999c67d86be revbranchcache: use context manager in _writerevs() to write to file The other _writenames() is a bit complicated to use context manager. Differential Revision: https://phab.mercurial-scm.org/D6292 diff -r 09fd338522fa -r ececa45c80d8 mercurial/branchmap.py --- a/mercurial/branchmap.py Sat Apr 20 00:44:18 2019 +0300 +++ b/mercurial/branchmap.py Sat Apr 20 00:48:16 2019 +0300 @@ -652,18 +652,15 @@ def _writerevs(self, repo, start): """ write the new revs to revbranchcache """ - revs = min(len(repo.changelog), - len(self._rbcrevs) // _rbcrecsize) - f = repo.cachevfs.open(_rbcrevs, 'ab') - if f.tell() != start: - repo.ui.debug("truncating cache/%s to %d\n" - % (_rbcrevs, start)) - f.seek(start) + revs = min(len(repo.changelog), len(self._rbcrevs) // _rbcrecsize) + with repo.cachevfs.open(_rbcrevs, 'ab') as f: if f.tell() != start: - start = 0 + repo.ui.debug("truncating cache/%s to %d\n" % (_rbcrevs, start)) f.seek(start) - f.truncate() - end = revs * _rbcrecsize - f.write(self._rbcrevs[start:end]) - f.close() + if f.tell() != start: + start = 0 + f.seek(start) + f.truncate() + end = revs * _rbcrecsize + f.write(self._rbcrevs[start:end]) self._rbcrevslen = revs