Pulkit Goyal <7895pulkit@gmail.com> [Thu, 06 Aug 2020 13:27:38 +0530] rev 45369
merge: remove emptyactions() and use collections.defaultdict(list) instead
emptyactions() used to return a dict which was populated and passed into
applyupdates(). However, with recent changes, we no longer pass a plain dict,
instead we pass the mergeresult object.
There was only one usage of emptyactions and that too inside mergeresult object.
That usage is replaced with collections.defaultdict(list) instead.
Not sure why we were not using collections.defaultdict(list) from the beginning.
Differential Revision: https://phab.mercurial-scm.org/D8903
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 05 Aug 2020 16:52:51 +0530] rev 45368
merge: pass mergeresult obj in _forgetremoved() (API)
Instead of returning a dict of actions and then updating it, let's pass the
object directly and update it there.
This makes `updateactions()` on mergeresult unused and this patch removes that.
After this patch, we have couple of methods left on mergeresult class which
still exposes the internal dict based action storage.
Differential Revision: https://phab.mercurial-scm.org/D8889
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 05 Aug 2020 16:00:25 +0530] rev 45367
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
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 05 Aug 2020 15:41:23 +0530] rev 45366
mergeresult: add `files()` and use it
`files()` will return a list of files on which an action needs to be performed.
This is a step to stop exposing the underlying map to the user of this object.
Differential Revision: https://phab.mercurial-scm.org/D8887
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 05 Aug 2020 15:37:26 +0530] rev 45365
mergeresult: introduce getfile() and use it where required
We want to hide the underlying dictionary from the users and provide API for
valid and sane use cases.
Differential Revision: https://phab.mercurial-scm.org/D8886
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 05 Aug 2020 14:03:59 +0530] rev 45364
merge: use ACTION_* constants instead of values in _filternarrowactions()
It makes easier to check what noconflicttypes are and which are not included.
I hope we can have a state where we always use ACTION_* constants instead of
these values which are very hard to understand.
Differential Revision: https://phab.mercurial-scm.org/D8885