changeset 39277:f785073f792c

merge: improve interactive one-changed one-deleted message (issue5550) I like the wording from the bug, so I figured I'd package it up in a change and see what people think. Differential Revision: https://phab.mercurial-scm.org/D4336
author Augie Fackler <augie@google.com>
date Mon, 20 Aug 2018 13:29:48 -0400
parents 337443f09fc8
children 53e532007878
files mercurial/filemerge.py tests/test-commit-amend.t tests/test-copy-move-merge.t tests/test-copytrace-heuristics.t tests/test-largefiles-update.t tests/test-merge-changedelete.t tests/test-merge-force.t tests/test-merge-remove.t tests/test-merge-subrepos.t tests/test-rebase-newancestor.t tests/test-rename-merge2.t tests/test-sparse-merges.t
diffstat 12 files changed, 200 insertions(+), 100 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/filemerge.py	Thu Aug 16 17:19:27 2018 +0200
+++ b/mercurial/filemerge.py	Mon Aug 20 13:29:48 2018 -0400
@@ -56,12 +56,14 @@
 fullmerge = internaltool.fullmerge # both premerge and merge
 
 _localchangedotherdeletedmsg = _(
-    "local%(l)s changed %(fd)s which other%(o)s deleted\n"
+    "file %(fd)s was deleted in local%(l)s but was modified in other%(o)s.\n"
+    "What do you want to do?\n"
     "use (c)hanged version, (d)elete, or leave (u)nresolved?"
     "$$ &Changed $$ &Delete $$ &Unresolved")
 
 _otherchangedlocaldeletedmsg = _(
-    "other%(o)s changed %(fd)s which local%(l)s deleted\n"
+    "file %(fd)s was deleted in other%(o)s but was modified in local%(l)s.\n"
+    "What do you want to do?\n"
     "use (c)hanged version, leave (d)eleted, or "
     "leave (u)nresolved?"
     "$$ &Changed $$ &Deleted $$ &Unresolved")
--- a/tests/test-commit-amend.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-commit-amend.t	Mon Aug 20 13:29:48 2018 -0400
@@ -824,7 +824,8 @@
   $ hg merge -q bar --config ui.interactive=True << EOF
   > c
   > EOF
-  local [working copy] changed aa which other [merge rev] deleted
+  file aa was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? c
   $ hg ci -m 'merge bar (with conflicts)'
   $ hg log --config diff.git=1 -pr .
--- a/tests/test-copy-move-merge.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-copy-move-merge.t	Mon Aug 20 13:29:48 2018 -0400
@@ -88,7 +88,8 @@
   > c
   > EOF
   rebasing 2:add3f11052fa "other" (tip)
-  other [source] changed a which local [dest] deleted
+  file a was deleted in other [source] but was modified in local [dest].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
 
   $ cat b
--- a/tests/test-copytrace-heuristics.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-copytrace-heuristics.t	Mon Aug 20 13:29:48 2018 -0400
@@ -86,7 +86,8 @@
 
   $ hg rebase -s . -d 1
   rebasing 2:d526312210b9 "mode a" (tip)
-  other [source] changed a which local [dest] deleted
+  file a was deleted in other [source] but was modified in local [dest].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   unresolved conflicts (see hg resolve, then hg rebase --continue)
   [1]
@@ -242,7 +243,8 @@
   $ hg rebase -s 2 -d 1 --config experimental.copytrace.movecandidateslimit=0
   rebasing 2:ef716627c70b "mod a" (tip)
   skipping copytracing for 'a', more candidates than the limit: 7
-  other [source] changed a which local [dest] deleted
+  file a was deleted in other [source] but was modified in local [dest].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   unresolved conflicts (see hg resolve, then hg rebase --continue)
   [1]
@@ -697,7 +699,8 @@
 
   $ hg rebase -s 8b6e13696 -d .
   rebasing 1:8b6e13696c38 "added more things to a"
-  other [source] changed a which local [dest] deleted
+  file a was deleted in other [source] but was modified in local [dest].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   unresolved conflicts (see hg resolve, then hg rebase --continue)
   [1]
--- a/tests/test-largefiles-update.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-largefiles-update.t	Mon Aug 20 13:29:48 2018 -0400
@@ -611,7 +611,8 @@
   > EOF
   rebasing 1:72518492caa6 "#1"
   rebasing 4:07d6153b5c04 "#4"
-  local [dest] changed .hglf/large1 which other [source] deleted
+  file .hglf/large1 was deleted in local [dest] but was modified in other [source].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? c
 
   $ hg diff -c "tip~1" --nodates .hglf/large1 | grep '^[+-][0-9a-z]'
--- a/tests/test-merge-changedelete.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-merge-changedelete.t	Mon Aug 20 13:29:48 2018 -0400
@@ -54,9 +54,11 @@
 Non-interactive merge:
 
   $ hg merge -y
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging file3
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')
@@ -121,9 +123,11 @@
   > c
   > d
   > EOF
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? c
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? d
   merging file3
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')
@@ -189,18 +193,23 @@
   > baz
   > c
   > EOF
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? foo
   unrecognized response
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? bar
   unrecognized response
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? d
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? baz
   unrecognized response
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
   merging file3
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')
@@ -262,9 +271,11 @@
   $ hg merge --config ui.interactive=true <<EOF
   > d
   > EOF
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? d
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   merging file3
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')
@@ -473,9 +484,11 @@
   1 other heads for branch "default"
 
   $ hg merge --config ui.interactive=True --tool :prompt
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? 
   0 files updated, 0 files merged, 0 files removed, 3 files unresolved
@@ -532,9 +545,11 @@
   1 other heads for branch "default"
 
   $ hg merge --tool :prompt
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? u
   0 files updated, 0 files merged, 0 files removed, 3 files unresolved
@@ -589,9 +604,11 @@
   1 other heads for branch "default"
 
   $ hg merge --tool :merge3
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging file3
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')
@@ -679,9 +696,11 @@
   (status identical)
   
   === :other -> :prompt ===
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? 
   --- diff of status ---
@@ -707,9 +726,11 @@
   (status identical)
   
   === :local -> :prompt ===
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? 
   --- diff of status ---
@@ -725,9 +746,11 @@
   (status identical)
   
   === :fail -> :prompt ===
-  local [working copy] changed file1 which other [merge rev] deleted
+  file file1 was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [merge rev] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved for file3? 
   --- diff of status ---
@@ -751,9 +774,11 @@
   $ echo changed >> file1
   $ hg rm file2
   $ hg update 1 -y
-  local [working copy] changed file1 which other [destination] deleted
+  file file1 was deleted in local [working copy] but was modified in other [destination].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  other [destination] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   1 files updated, 0 files merged, 0 files removed, 2 files unresolved
   use 'hg resolve' to retry unresolved file merges
@@ -927,9 +952,11 @@
   $ echo changed >> file1
   $ hg rm file2
   $ hg update 1 --config ui.interactive=True --tool :prompt
-  local [working copy] changed file1 which other [destination] deleted
+  file file1 was deleted in local [working copy] but was modified in other [destination].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [destination] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   1 files updated, 0 files merged, 0 files removed, 2 files unresolved
   use 'hg resolve' to retry unresolved file merges
@@ -977,9 +1004,11 @@
   $ echo changed >> file1
   $ hg rm file2
   $ hg update 1 --tool :merge3
-  local [working copy] changed file1 which other [destination] deleted
+  file file1 was deleted in local [working copy] but was modified in other [destination].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  other [destination] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   1 files updated, 0 files merged, 0 files removed, 2 files unresolved
   use 'hg resolve' to retry unresolved file merges
@@ -1033,9 +1062,11 @@
   (status identical)
   
   === :other -> :prompt ===
-  local [working copy] changed file1 which other [destination] deleted
+  file file1 was deleted in local [working copy] but was modified in other [destination].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [destination] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   --- diff of status ---
   (status identical)
@@ -1060,9 +1091,11 @@
   (status identical)
   
   === :local -> :prompt ===
-  local [working copy] changed file1 which other [destination] deleted
+  file file1 was deleted in local [working copy] but was modified in other [destination].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [destination] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   --- diff of status ---
   (status identical)
@@ -1077,9 +1110,11 @@
   (status identical)
   
   === :fail -> :prompt ===
-  local [working copy] changed file1 which other [destination] deleted
+  file file1 was deleted in local [working copy] but was modified in other [destination].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? 
-  other [destination] changed file2 which local [working copy] deleted
+  file file2 was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? 
   --- diff of status ---
   (status identical)
--- a/tests/test-merge-force.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-merge-force.t	Mon Aug 20 13:29:48 2018 -0400
@@ -142,55 +142,80 @@
 #   in the same way, so it could potentially be left alone
 
   $ hg merge -f --tool internal:merge3 'desc("remote")' 2>&1 | tee $TESTTMP/merge-output-1
-  local [working copy] changed content1_missing_content1_content4-tracked which other [merge rev] deleted
+  file content1_missing_content1_content4-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_content3_content3-tracked which other [merge rev] deleted
+  file content1_missing_content3_content3-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_content3_content4-tracked which other [merge rev] deleted
+  file content1_missing_content3_content4-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_missing_content4-tracked which other [merge rev] deleted
+  file content1_missing_missing_content4-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_content1-untracked which local [working copy] deleted
+  file content1_content2_content1_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_content2-untracked which local [working copy] deleted
+  file content1_content2_content1_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_content4-untracked which local [working copy] deleted
+  file content1_content2_content1_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_missing-tracked which local [working copy] deleted
+  file content1_content2_content1_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_missing-untracked which local [working copy] deleted
+  file content1_content2_content1_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_content1-untracked which local [working copy] deleted
+  file content1_content2_content2_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_content2-untracked which local [working copy] deleted
+  file content1_content2_content2_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_content4-untracked which local [working copy] deleted
+  file content1_content2_content2_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_missing-tracked which local [working copy] deleted
+  file content1_content2_content2_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_missing-untracked which local [working copy] deleted
+  file content1_content2_content2_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_content1-untracked which local [working copy] deleted
+  file content1_content2_content3_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_content2-untracked which local [working copy] deleted
+  file content1_content2_content3_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_content3-untracked which local [working copy] deleted
+  file content1_content2_content3_content3-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_content4-untracked which local [working copy] deleted
+  file content1_content2_content3_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_missing-tracked which local [working copy] deleted
+  file content1_content2_content3_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_missing-untracked which local [working copy] deleted
+  file content1_content2_content3_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_content1-untracked which local [working copy] deleted
+  file content1_content2_missing_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_content2-untracked which local [working copy] deleted
+  file content1_content2_missing_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_content4-untracked which local [working copy] deleted
+  file content1_content2_missing_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_missing-tracked which local [working copy] deleted
+  file content1_content2_missing_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_missing-untracked which local [working copy] deleted
+  file content1_content2_missing_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content1_content4-tracked
   merging content1_content2_content2_content1-tracked
@@ -703,63 +728,88 @@
   (no more unresolved files)
   $ hg resolve --unmark --all
   $ hg resolve --all --tool internal:merge3
-  other [merge rev] changed content1_content2_content1_content1-untracked which local [working copy] deleted
+  file content1_content2_content1_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_content2-untracked which local [working copy] deleted
+  file content1_content2_content1_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content1_content4-tracked
-  other [merge rev] changed content1_content2_content1_content4-untracked which local [working copy] deleted
+  file content1_content2_content1_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_missing-tracked which local [working copy] deleted
+  file content1_content2_content1_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content1_missing-untracked which local [working copy] deleted
+  file content1_content2_content1_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content2_content1-tracked
-  other [merge rev] changed content1_content2_content2_content1-untracked which local [working copy] deleted
+  file content1_content2_content2_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_content2-untracked which local [working copy] deleted
+  file content1_content2_content2_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content2_content4-tracked
-  other [merge rev] changed content1_content2_content2_content4-untracked which local [working copy] deleted
+  file content1_content2_content2_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_missing-tracked which local [working copy] deleted
+  file content1_content2_content2_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content2_missing-untracked which local [working copy] deleted
+  file content1_content2_content2_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content3_content1-tracked
-  other [merge rev] changed content1_content2_content3_content1-untracked which local [working copy] deleted
+  file content1_content2_content3_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_content2-untracked which local [working copy] deleted
+  file content1_content2_content3_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content3_content3-tracked
-  other [merge rev] changed content1_content2_content3_content3-untracked which local [working copy] deleted
+  file content1_content2_content3_content3-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_content3_content4-tracked
-  other [merge rev] changed content1_content2_content3_content4-untracked which local [working copy] deleted
+  file content1_content2_content3_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_missing-tracked which local [working copy] deleted
+  file content1_content2_content3_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_content3_missing-untracked which local [working copy] deleted
+  file content1_content2_content3_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_missing_content1-tracked
-  other [merge rev] changed content1_content2_missing_content1-untracked which local [working copy] deleted
+  file content1_content2_missing_content1-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_content2-untracked which local [working copy] deleted
+  file content1_content2_missing_content2-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging content1_content2_missing_content4-tracked
-  other [merge rev] changed content1_content2_missing_content4-untracked which local [working copy] deleted
+  file content1_content2_missing_content4-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_missing-tracked which local [working copy] deleted
+  file content1_content2_missing_missing-tracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  other [merge rev] changed content1_content2_missing_missing-untracked which local [working copy] deleted
+  file content1_content2_missing_missing-untracked was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_content1_content4-tracked which other [merge rev] deleted
+  file content1_missing_content1_content4-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_content3_content3-tracked which other [merge rev] deleted
+  file content1_missing_content3_content3-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_content3_content4-tracked which other [merge rev] deleted
+  file content1_missing_content3_content4-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
-  local [working copy] changed content1_missing_missing_content4-tracked which other [merge rev] deleted
+  file content1_missing_missing_content4-tracked was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
   merging missing_content2_content2_content4-tracked
   merging missing_content2_content3_content3-tracked
--- a/tests/test-merge-remove.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-merge-remove.t	Mon Aug 20 13:29:48 2018 -0400
@@ -102,7 +102,8 @@
 Those who use force will lose
 
   $ hg merge -f
-  other [merge rev] changed bar which local [working copy] deleted
+  file bar was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
   merging foo1 and foo to foo1
   0 files updated, 1 files merged, 0 files removed, 1 files unresolved
--- a/tests/test-merge-subrepos.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-merge-subrepos.t	Mon Aug 20 13:29:48 2018 -0400
@@ -110,7 +110,8 @@
   $ hg up -r '.^' --config ui.interactive=True << EOF
   > d
   > EOF
-  other [destination] changed b which local [working copy] deleted
+  file b was deleted in other [destination] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? d
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
--- a/tests/test-rebase-newancestor.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-rebase-newancestor.t	Mon Aug 20 13:29:48 2018 -0400
@@ -133,7 +133,8 @@
   note: rebase of 1:1d1a643d390e created no changes to commit
   rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
   rebasing 4:4b019212aaf6 "dev: merge default"
-  other [source] changed f-default which local [dest] deleted
+  file f-default was deleted in other [source] but was modified in local [dest].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
   rebasing 6:9455ee510502 "dev: merge default"
   saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-43e9e04b-rebase.hg
@@ -162,7 +163,8 @@
   > EOF
   rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
   rebasing 4:4b019212aaf6 "dev: merge default"
-  other [source] changed f-default which local [dest] deleted
+  file f-default was deleted in other [source] but was modified in local [dest].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
   rebasing 6:9455ee510502 "dev: merge default"
   saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-62d0b222-rebase.hg
--- a/tests/test-rename-merge2.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-rename-merge2.t	Mon Aug 20 13:29:48 2018 -0400
@@ -692,7 +692,8 @@
   starting 4 threads for background file closing (?)
    a: prompt deleted/changed -> m (premerge)
   picked tool ':prompt' for a (binary False symlink False changedelete True)
-  other [merge rev] changed a which local [working copy] deleted
+  file a was deleted in other [merge rev] but was modified in local [working copy].
+  What do you want to do?
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u
    b: both created -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
@@ -737,7 +738,8 @@
   starting 4 threads for background file closing (?)
    a: prompt changed/deleted -> m (premerge)
   picked tool ':prompt' for a (binary False symlink False changedelete True)
-  local [working copy] changed a which other [merge rev] deleted
+  file a was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
    b: both created -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
--- a/tests/test-sparse-merges.t	Thu Aug 16 17:19:27 2018 +0200
+++ b/tests/test-sparse-merges.t	Mon Aug 20 13:29:48 2018 -0400
@@ -113,7 +113,8 @@
 
   $ hg merge
   temporarily included 1 file(s) in the sparse checkout for merging
-  local [working copy] changed d which other [merge rev] deleted
+  file d was deleted in local [working copy] but was modified in other [merge rev].
+  What do you want to do?
   use (c)hanged version, (d)elete, or leave (u)nresolved? u
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
   use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon