[Request] [+ ] D8921: merge: use collections.defaultdict() for mergeresult.commitinfo

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Mon Aug 10 11:18:29 UTC 2020


pulkit created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  We will be storing info from mergeresult.commitinfo to mergestate._stateextras
  in upcoming patches, let's make them use same structure so that we don't have to
  make much efforts in transferring info from one to other.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D8921

AFFECTED FILES
  mercurial/merge.py

CHANGE DETAILS

diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -579,7 +579,7 @@
         self._filemapping = {}
         self._diverge = {}
         self._renamedelete = {}
-        self._commitinfo = {}
+        self._commitinfo = collections.defaultdict(dict)
         self._actionmapping = collections.defaultdict(dict)
 
     def updatevalues(self, diverge, renamedelete, commitinfo):
@@ -756,7 +756,7 @@
     # information from merge which is needed at commit time
     # for example choosing filelog of which parent to commit
     # TODO: use specific constants in future for this mapping
-    commitinfo = {}
+    commitinfo = collections.defaultdict(dict)
     if followcopies:
         branch_copies1, branch_copies2, diverge = copies.mergecopies(
             repo, wctx, p2, pa
@@ -844,7 +844,7 @@
                             b'remote is newer',
                         )
                         if branchmerge:
-                            commitinfo[f] = b'other'
+                            commitinfo[f][b'filenode'] = b'other'
                 elif nol and n2 == a:  # remote only changed 'x'
                     mresult.addfile(
                         f,
@@ -860,7 +860,7 @@
                         b'remote is newer',
                     )
                     if branchmerge:
-                        commitinfo[f] = b'other'
+                        commitinfo[f][b'filenode'] = b'other'
                 else:  # both changed something
                     mresult.addfile(
                         f,
@@ -1363,7 +1363,7 @@
     for f, op in pycompat.iteritems(mresult.commitinfo):
         # the other side of filenode was choosen while merging, store this in
         # mergestate so that it can be reused on commit
-        if op == b'other':
+        if op[b'filenode'] == b'other':
             ms.addmergedother(f)
 
     moves = []



To: pulkit, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200810/f2fca916/attachment-0001.html>


More information about the Mercurial-patches mailing list