Patchwork D6292: revbranchcache: use context manager in _writerevs() to write to file

login
register
mail settings
Submitter phabricator
Date April 19, 2019, 9:48 p.m.
Message ID <differential-rev-PHID-DREV-2rvhhmjixoo4hngrhfwy-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/39774/
State Superseded
Headers show

Comments

phabricator - April 19, 2019, 9:48 p.m.
pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  The other _writenames() is a bit complicated to use context manager.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6292

AFFECTED FILES
  mercurial/branchmap.py

CHANGE DETAILS




To: pulkit, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
--- a/mercurial/branchmap.py
+++ b/mercurial/branchmap.py
@@ -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