mercurial/merge.py
changeset 45524 6877b0ee5f9d
parent 45518 32ce4cbaec4b
child 45525 590a840fa367
--- a/mercurial/merge.py	Mon Sep 21 10:23:25 2020 -0400
+++ b/mercurial/merge.py	Wed Sep 09 16:49:19 2020 +0530
@@ -552,6 +552,7 @@
     NO_OP_ACTIONS = (
         mergestatemod.ACTION_KEEP,
         mergestatemod.ACTION_KEEP_ABSENT,
+        mergestatemod.ACTION_KEEP_NEW,
     )
 
     def __init__(self):
@@ -921,7 +922,7 @@
             else:  # file not in ancestor, not in remote
                 mresult.addfile(
                     f,
-                    mergestatemod.ACTION_KEEP,
+                    mergestatemod.ACTION_KEEP_NEW,
                     None,
                     b'ancestor missing, remote missing',
                 )
@@ -1191,6 +1192,11 @@
                 repo.ui.note(_(b" %s: picking 'keep absent' action\n") % f)
                 mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP_ABSENT][0])
                 continue
+            # If keep new is an option, let's just do that
+            if mergestatemod.ACTION_KEEP_NEW in bids:
+                repo.ui.note(_(b" %s: picking 'keep new' action\n") % f)
+                mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP_NEW][0])
+                continue
             # If there are gets and they all agree [how could they not?], do it.
             if mergestatemod.ACTION_GET in bids:
                 ga0 = bids[mergestatemod.ACTION_GET][0]
@@ -1496,16 +1502,10 @@
         progress.increment(item=f)
 
     # keep (noop, just log it)
-    for f, args, msg in mresult.getactions(
-        (mergestatemod.ACTION_KEEP,), sort=True
-    ):
-        repo.ui.debug(b" %s: %s -> k\n" % (f, msg))
-        # no progress
-    for f, args, msg in mresult.getactions(
-        (mergestatemod.ACTION_KEEP_ABSENT,), sort=True
-    ):
-        repo.ui.debug(b" %s: %s -> ka\n" % (f, msg))
-        # no progress
+    for a in mergeresult.NO_OP_ACTIONS:
+        for f, args, msg in mresult.getactions((a,), sort=True):
+            repo.ui.debug(b" %s: %s -> %s\n" % (f, msg, a))
+            # no progress
 
     # directory rename, move local
     for f, args, msg in mresult.getactions(