Mercurial > hg
changeset 50103:5a0c1d70ebcf
large-files: larger "changing_parents" context in mergeupdate override
This since we are updating the lfdirstate early, it seems reasonable to include
the full function in that scope.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 21 Feb 2023 00:32:40 +0100 |
parents | c4b17bc78d8c |
children | 7989646f1d5a |
files | hgext/largefiles/overrides.py |
diffstat | 1 files changed, 13 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py Sun Feb 19 03:14:44 2023 +0100 +++ b/hgext/largefiles/overrides.py Tue Feb 21 00:32:40 2023 +0100 @@ -1769,7 +1769,7 @@ matcher = kwargs.get('matcher', None) # note if this is a partial update partial = matcher and not matcher.always() - with repo.wlock(): + with repo.wlock(), repo.dirstate.changing_parents(repo): # branch | | | # merge | force | partial | action # -------+-------+---------+-------------- @@ -1837,24 +1837,22 @@ raise error.ProgrammingError( b'largefiles is not compatible with in-memory merge' ) - with repo.dirstate.changing_parents(repo): - lfdirstate = lfutil.openlfdirstate(repo.ui, repo) - result = orig(repo, node, branchmerge, force, *args, **kwargs) + 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.update_file(lfile, p1_tracked=True, wc_tracked=True) + # 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.update_file(lfile, p1_tracked=True, wc_tracked=True) - 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