largefile: use `parentchange` during rollback
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 08 Jul 2021 01:47:41 +0200
changeset 47652 12300ee6840b
parent 47651 40811cc7fa56
child 47653 00d70f61d856
largefile: use `parentchange` during rollback rollback is updating parent without touching the working copy. It should wrapped in a `parentchange` context. Differential Revision: https://phab.mercurial-scm.org/D11108
hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py	Thu Jul 08 01:44:49 2021 +0200
+++ b/hgext/largefiles/overrides.py	Thu Jul 08 01:47:41 2021 +0200
@@ -1636,13 +1636,14 @@
             repo.wvfs.unlinkpath(standin, ignoremissing=True)
 
         lfdirstate = lfutil.openlfdirstate(ui, repo)
-        orphans = set(lfdirstate)
-        lfiles = lfutil.listlfiles(repo)
-        for file in lfiles:
-            lfutil.synclfdirstate(repo, lfdirstate, file, True)
-            orphans.discard(file)
-        for lfile in orphans:
-            lfdirstate.drop(lfile)
+        with lfdirstate.parentchange():
+            orphans = set(lfdirstate)
+            lfiles = lfutil.listlfiles(repo)
+            for file in lfiles:
+                lfutil.synclfdirstate(repo, lfdirstate, file, True)
+                orphans.discard(file)
+            for lfile in orphans:
+                lfdirstate.drop(lfile)
         lfdirstate.write()
     return result