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
--- 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