changeset 42311:ec5bd3ab26bf

bookmarks: use context manager when writing files Differential Revision: https://phab.mercurial-scm.org/D6382
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 15 May 2019 10:13:29 -0700
parents 21eda240be07
children 2b77183ac477
files mercurial/bookmarks.py
diffstat 1 files changed, 5 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/bookmarks.py	Wed May 15 10:54:36 2019 -0400
+++ b/mercurial/bookmarks.py	Wed May 15 10:13:29 2019 -0700
@@ -204,27 +204,18 @@
             rbm._writeactive()
 
         with repo.wlock():
-            file_ = repo.vfs('bookmarks', 'w', atomictemp=True,
-                             checkambig=True)
-            try:
-                self._write(file_)
-            except: # re-raises
-                file_.discard()
-                raise
-            finally:
-                file_.close()
+            with repo.vfs('bookmarks', 'w', atomictemp=True,
+                          checkambig=True) as f:
+                self._write(f)
 
     def _writeactive(self):
         if self._aclean:
             return
         with self._repo.wlock():
             if self._active is not None:
-                f = self._repo.vfs('bookmarks.current', 'w', atomictemp=True,
-                                   checkambig=True)
-                try:
+                with self._repo.vfs('bookmarks.current', 'w', atomictemp=True,
+                                   checkambig=True) as f:
                     f.write(encoding.fromlocal(self._active))
-                finally:
-                    f.close()
             else:
                 self._repo.vfs.tryunlink('bookmarks.current')
         self._aclean = True