# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1596623425 -19800 # Node ID 3c783ff08d40cbaf36eb27ffe1d296718c0f1d77 # Parent e5b4061f32bec1609a512a2efaf2947cc3bbfaef mergeresult: introduce filemap() which yields filename based mapping We wanted to remove `actions` as this was leaking how we store things internally and was direct access to one of the member. This introduces filemap() which yields a map of `filename` -> `action, args, msg`. `mergeresult.actions` has been deleted as it's no longer required. Differential Revision: https://phab.mercurial-scm.org/D8888 diff -r e5b4061f32be -r 3c783ff08d40 hgext/convert/hg.py --- a/hgext/convert/hg.py Wed Aug 05 15:41:23 2020 +0530 +++ b/hgext/convert/hg.py Wed Aug 05 16:00:25 2020 +0530 @@ -229,7 +229,7 @@ followcopies=False, ) - for file, (action, info, msg) in pycompat.iteritems(mresult.actions): + for file, (action, info, msg) in mresult.filemap(): if source.targetfilebelongstosource(file): # If the file belongs to the source repo, ignore the p2 # since it will be covered by the existing fileset. diff -r e5b4061f32be -r 3c783ff08d40 hgext/remotefilelog/__init__.py --- a/hgext/remotefilelog/__init__.py Wed Aug 05 15:41:23 2020 +0530 +++ b/hgext/remotefilelog/__init__.py Wed Aug 05 16:00:25 2020 +0530 @@ -497,7 +497,7 @@ if isenabled(repo): files = [] sparsematch = repo.maybesparsematch(mctx.rev()) - for f, (m, actionargs, msg) in pycompat.iteritems(mresult.actions): + for f, (m, actionargs, msg) in mresult.filemap(): if sparsematch and not sparsematch(f): continue if m in ( diff -r e5b4061f32be -r 3c783ff08d40 mercurial/merge.py --- a/mercurial/merge.py Wed Aug 05 15:41:23 2020 +0530 +++ b/mercurial/merge.py Wed Aug 05 16:00:25 2020 +0530 @@ -541,7 +541,7 @@ } # We mutate the items in the dict during iteration, so iterate # over a copy. - for f, action in list(mresult.actions.items()): + for f, action in mresult.filemap(): if narrowmatch(f): pass elif not branchmerge: @@ -668,9 +668,13 @@ return sum(len(self._actionmapping[a]) for a in actions) - @property - def actions(self): - return self._filemapping + def filemap(self, sort=False): + if sorted: + for key, val in sorted(pycompat.iteritems(self._filemapping)): + yield key, val + else: + for key, val in pycompat.iteritems(self._filemapping): + yield key, val @property def diverge(self): @@ -1137,7 +1141,7 @@ ): renamedelete = mresult1.renamedelete - for f, a in sorted(pycompat.iteritems(mresult1.actions)): + for f, a in mresult1.filemap(sort=True): m, args, msg = a repo.ui.debug(b' %s: %s -> %s\n' % (f, msg, m)) if f in fbids: diff -r e5b4061f32be -r 3c783ff08d40 mercurial/sparse.py --- a/mercurial/sparse.py Wed Aug 05 15:41:23 2020 +0530 +++ b/mercurial/sparse.py Wed Aug 05 16:00:25 2020 +0530 @@ -388,7 +388,7 @@ sparsematch = matcher(repo, [mctx.rev()]) temporaryfiles = [] - for file, action in pycompat.iteritems(mresult.actions): + for file, action in mresult.filemap(): type, args, msg = action files.add(file) if sparsematch(file):