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, so we take the store lock before writing requirements. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11991 AFFECTED FILES hgext/lfs/__init__.py CHANGE DETAILS diff --git a/hgext/lfs/__init__.py b/hgext/lfs/__init__.py --- a/hgext/lfs/__init__.py +++ b/hgext/lfs/__init__.py @@ -257,25 +257,28 @@ if b'lfs' not in repo.requirements: def checkrequireslfs(ui, repo, **kwargs): - if b'lfs' in repo.requirements: - return 0 + with repo.lock(): + if b'lfs' in repo.requirements: + return 0 - last = kwargs.get('node_last') - if last: - s = repo.set(b'%n:%n', bin(kwargs['node']), bin(last)) - else: - s = repo.set(b'%n', bin(kwargs['node'])) - match = repo._storenarrowmatch - for ctx in s: - # TODO: is there a way to just walk the files in the commit? - if any( - ctx[f].islfs() for f in ctx.files() if f in ctx and match(f) - ): - repo.requirements.add(b'lfs') - repo.features.add(repository.REPO_FEATURE_LFS) - scmutil.writereporequirements(repo) - repo.prepushoutgoinghooks.add(b'lfs', wrapper.prepush) - break + last = kwargs.get('node_last') + if last: + s = repo.set(b'%n:%n', bin(kwargs['node']), bin(last)) + else: + s = repo.set(b'%n', bin(kwargs['node'])) + match = repo._storenarrowmatch + for ctx in s: + # TODO: is there a way to just walk the files in the commit? + if any( + ctx[f].islfs() + for f in ctx.files() + if f in ctx and match(f) + ): + repo.requirements.add(b'lfs') + repo.features.add(repository.REPO_FEATURE_LFS) + scmutil.writereporequirements(repo) + repo.prepushoutgoinghooks.add(b'lfs', wrapper.prepush) + break ui.setconfig(b'hooks', b'commit.lfs', checkrequireslfs, b'lfs') ui.setconfig( To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel