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

login
register
mail settings
Submitter phabricator
Date Oct. 19, 2019, 7:38 a.m.
Message ID <differential-rev-PHID-DREV-s3ygmgeq6xk2guzfs7gd-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/42487/
State Superseded
Headers show

Comments

phabricator - Oct. 19, 2019, 7:38 a.m.
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




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

Patch

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)