# HG changeset patch # User Martin von Zweigbergk # Date 2019-10-19 04:36:19 # Node ID 99b881195abf0f57ee04b38c3b4c087c49561ebc # Parent a02e4c12ae60b54e5b052b851cb074b2b228aa2d largefiles: use context manager for wlock in repo.status() override Differential Revision: https://phab.mercurial-scm.org/D7141 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 @@ from mercurial import ( localrepo, match as matchmod, scmutil, + util, ) from . import ( @@ -130,14 +131,15 @@ def reposetup(ui, repo): 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 @@ def reposetup(ui, repo): for items in result ] - if wlock: + if gotlock: lfdirstate.write() - finally: - if wlock: - wlock.release() - self.lfstatus = True return scmutil.status(*result)