# HG changeset patch # User Pierre-Yves David # Date 1625700251 -7200 # Node ID 4b17971f01816fb65e3d45e5e5e7062fe6fcf2b3 # Parent 093b1df410c983c03b75137bda5541a702b1716f largefile: use parentchange during mergerecordupdates This match what core is doing around recordupdates. Differential Revision: https://phab.mercurial-scm.org/D11105 diff -r 093b1df410c9 -r 4b17971f0181 hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Thu Jul 08 01:23:30 2021 +0200 +++ b/hgext/largefiles/overrides.py Thu Jul 08 01:24:11 2021 +0200 @@ -650,12 +650,15 @@ def mergerecordupdates(orig, repo, actions, branchmerge, getfiledata): if MERGE_ACTION_LARGEFILE_MARK_REMOVED in actions: lfdirstate = lfutil.openlfdirstate(repo.ui, repo) - for lfile, args, msg in actions[MERGE_ACTION_LARGEFILE_MARK_REMOVED]: - # this should be executed before 'orig', to execute 'remove' - # before all other actions - repo.dirstate.remove(lfile) - # make sure lfile doesn't get synclfdirstate'd as normal - lfdirstate.add(lfile) + with lfdirstate.parentchange(): + for lfile, args, msg in actions[ + MERGE_ACTION_LARGEFILE_MARK_REMOVED + ]: + # this should be executed before 'orig', to execute 'remove' + # before all other actions + repo.dirstate.remove(lfile) + # make sure lfile doesn't get synclfdirstate'd as normal + lfdirstate.add(lfile) lfdirstate.write() return orig(repo, actions, branchmerge, getfiledata)