From patchwork Wed Jan 12 14:11:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D11992: largefiles: take lock before writing requirements From: phabricator X-Patchwork-Id: 50317 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Wed, 12 Jan 2022 14:11:35 +0000 marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY With `share-safe`, we will also write file in the store. We now take the `lock` as needed. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11992 AFFECTED FILES hgext/largefiles/reposetup.py CHANGE DETAILS To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py --- a/hgext/largefiles/reposetup.py +++ b/hgext/largefiles/reposetup.py @@ -455,11 +455,12 @@ repo.prepushoutgoinghooks.add(b"largefiles", prepushoutgoinghook) def checkrequireslfiles(ui, repo, **kwargs): - if b'largefiles' not in repo.requirements and any( - lfutil.shortname + b'/' in f[1] for f in repo.store.datafiles() - ): - repo.requirements.add(b'largefiles') - scmutil.writereporequirements(repo) + with repo.lock(): + if b'largefiles' not in repo.requirements and any( + lfutil.shortname + b'/' in f[1] for f in repo.store.datafiles() + ): + repo.requirements.add(b'largefiles') + scmutil.writereporequirements(repo) ui.setconfig( b'hooks', b'changegroup.lfiles', checkrequireslfiles, b'largefiles'