D7141: largefiles: use context manager for wlock in repo.status() override

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Sat Oct 19 07:38:23 UTC 2019


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  hgext/largefiles/reposetup.py

CHANGE DETAILS

diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py
--- a/hgext/largefiles/reposetup.py
+++ b/hgext/largefiles/reposetup.py
@@ -18,6 +18,7 @@
     localrepo,
     match as matchmod,
     scmutil,
+    util,
 )
 
 from . import (
@@ -130,14 +131,15 @@
             if match is None:
                 match = matchmod.always()
 
-            wlock = None
             try:
-                try:
-                    # updating the dirstate is optional
-                    # so we don't wait on the lock
-                    wlock = self.wlock(False)
-                except error.LockError:
-                    pass
+                # updating the dirstate is optional
+                # so we don't wait on the lock
+                wlock = self.wlock(False)
+                gotlock = True
+            except error.LockError:
+                wlock = util.nullcontextmanager()
+                gotlock = False
+            with wlock:
 
                 # First check if paths or patterns were specified on the
                 # command line.  If there were, and they don't match any
@@ -308,13 +310,9 @@
                         for items in result
                     ]
 
-                if wlock:
+                if gotlock:
                     lfdirstate.write()
 
-            finally:
-                if wlock:
-                    wlock.release()
-
             self.lfstatus = True
             return scmutil.status(*result)
 



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


More information about the Mercurial-devel mailing list