largefile: adjust the dirstate post update within a `parentchange` context
This is doing an update, so this seems more appropriate. No other change have been made, but the next changeset will :-)
Differential Revision: https://phab.mercurial-scm.org/D11144
--- a/hgext/largefiles/overrides.py Fri Jul 16 14:06:32 2021 +0200
+++ b/hgext/largefiles/overrides.py Mon Jul 19 00:05:47 2021 +0200
@@ -1796,23 +1796,24 @@
raise error.ProgrammingError(
b'largefiles is not compatible with in-memory merge'
)
- result = orig(repo, node, branchmerge, force, *args, **kwargs)
+ with lfdirstate.parentchange():
+ result = orig(repo, node, branchmerge, force, *args, **kwargs)
- newstandins = lfutil.getstandinsstate(repo)
- filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
+ newstandins = lfutil.getstandinsstate(repo)
+ filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
- # to avoid leaving all largefiles as dirty and thus rehash them, mark
- # all the ones that didn't change as clean
- for lfile in oldclean.difference(filelist):
- lfdirstate.normal(lfile)
- lfdirstate.write()
+ # to avoid leaving all largefiles as dirty and thus rehash them, mark
+ # all the ones that didn't change as clean
+ for lfile in oldclean.difference(filelist):
+ lfdirstate.normal(lfile)
+ lfdirstate.write()
- if branchmerge or force or partial:
- filelist.extend(s.deleted + s.removed)
+ if branchmerge or force or partial:
+ filelist.extend(s.deleted + s.removed)
- lfcommands.updatelfiles(
- repo.ui, repo, filelist=filelist, normallookup=partial
- )
+ lfcommands.updatelfiles(
+ repo.ui, repo, filelist=filelist, normallookup=partial
+ )
return result