<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<div>Good point. I think that I might make translations a little worse in this version, as 'local' and 'other' will not be translated.</div>
<div><br>
</div>
<div>I can fix this in a V2, but I'm not sure what happens with the labels - they're already exposed to users, so should be translated.</div>
<div><br>
</div>
<div id="composer_signature">
<div style="font-size:85%; color:#575757">Sent from Mobile</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>-------- Original message --------</div>
<div>From: timeless <timeless@gmail.com> </div>
<div>Date: 19/03/2016 18:57 (GMT-08:00) </div>
<div>To: Simon Farnsworth <simonfar@fb.com> </div>
<div>Cc: mercurial-devel <mercurial-devel@mercurial-scm.org> </div>
<div>Subject: Re: [PATCH 2 of 2] merge: use labels in prompts to the user </div>
<div><br>
</div>
<div>
<p dir="ltr">I don't suppose you know what this would look like for a translation?</p>
<p dir="ltr">(I should probably mock one up to test it...)</p>
<div class="gmail_quote">On Mar 19, 2016 9:29 PM, "Simon Farnsworth" <<a href="mailto:simonfar@fb.com">simonfar@fb.com</a>> wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
# HG changeset patch<br>
# User Simon Farnsworth <<a href="mailto:simonfar@fb.com">simonfar@fb.com</a>><br>
# Date 1458436919 25200<br>
#      Sat Mar 19 18:21:59 2016 -0700<br>
# Node ID 10b438b40a8d7da24a2ca51e66385257d1bf69ad<br>
# Parent  015b096baa079eda4b1ae754b9665017620d8f8c<br>
merge: use labels in prompts to the user<br>
<br>
Now that we persist the labels, we can consistently use the labels in<br>
prompts for the user without risk of confusion. This changes a huge amount<br>
of command output:<br>
<br>
This means that merge prompts like:<br>
  no tool found to merge a<br>
  keep (l)ocal, take (o)ther, or leave (u)nresolved? u<br>
and<br>
  remote changed a which local deleted<br>
  use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c<br>
become:<br>
  no tool found to merge a<br>
  keep (l)ocal [working copy], take (o)ther [destination], or leave (u)nresolved? u<br>
and<br>
  other [source] changed a which local [dest] deleted<br>
  use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c<br>
where "working copy" and "destination" were supplied by the command that<br>
requested the merge as labels for conflict markers, and thus should be<br>
human-friendly.<br>
<br>
diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py<br>
--- a/mercurial/filemerge.py<br>
+++ b/mercurial/filemerge.py<br>
@@ -229,50 +229,56 @@<br>
                 util.writefile(file, newdata)<br>
<br>
 @internaltool('prompt', nomerge)<br>
-def _iprompt(repo, mynode, orig, fcd, fco, fca, toolconf):<br>
+def _iprompt(repo, mynode, orig, fcd, fco, fca, toolconf, labels=None):<br>
     """Asks the user which of the local or the other version to keep as<br>
     the merged version."""<br>
     ui = repo.ui<br>
     fd = fcd.path()<br>
<br>
+    prompts = partnames(labels)<br>
+    prompts['fd'] = fd<br>
     try:<br>
         if fco.isabsent():<br>
             index = ui.promptchoice(<br>
-                _("local changed %s which remote deleted\n"<br>
+                _("%(local)s changed %(fd)s which %(other)s deleted\n"<br>
                   "use (c)hanged version, (d)elete, or leave (u)nresolved?"<br>
-                  "$$ &Changed $$ &Delete $$ &Unresolved") % fd, 2)<br>
+                  "$$ &Changed $$ &Delete $$ &Unresolved") % prompts, 2)<br>
             choice = ['local', 'other', 'unresolved'][index]<br>
         elif fcd.isabsent():<br>
             index = ui.promptchoice(<br>
-                _("remote changed %s which local deleted\n"<br>
+                _("%(other)s changed %(fd)s which %(local)s deleted\n"<br>
                   "use (c)hanged version, leave (d)eleted, or "<br>
                   "leave (u)nresolved?"<br>
-                  "$$ &Changed $$ &Deleted $$ &Unresolved") % fd, 2)<br>
+                  "$$ &Changed $$ &Deleted $$ &Unresolved") % prompts, 2)<br>
             choice = ['other', 'local', 'unresolved'][index]<br>
         else:<br>
             index = ui.promptchoice(<br>
-                _("no tool found to merge %s\n"<br>
-                  "keep (l)ocal, take (o)ther, or leave (u)nresolved?"<br>
-                  "$$ &Local $$ &Other $$ &Unresolved") % fd, 2)<br>
+                _("no tool found to merge %(fd)s\n"<br>
+                  "keep %(localact)s, take %(otheract)s, or leave (u)nresolved?"<br>
+                  "$$ &Local $$ &Other $$ &Unresolved") % prompts, 2)<br>
             choice = ['local', 'other', 'unresolved'][index]<br>
<br>
         if choice == 'other':<br>
-            return _iother(repo, mynode, orig, fcd, fco, fca, toolconf)<br>
+            return _iother(repo, mynode, orig, fcd, fco, fca, toolconf,<br>
+                           labels)<br>
         elif choice == 'local':<br>
-            return _ilocal(repo, mynode, orig, fcd, fco, fca, toolconf)<br>
+            return _ilocal(repo, mynode, orig, fcd, fco, fca, toolconf,<br>
+                           labels)<br>
         elif choice == 'unresolved':<br>
-            return _ifail(repo, mynode, orig, fcd, fco, fca, toolconf)<br>
+            return _ifail(repo, mynode, orig, fcd, fco, fca, toolconf,<br>
+                          labels)<br>
     except error.ResponseExpected:<br>
         ui.write("\n")<br>
-        return _ifail(repo, mynode, orig, fcd, fco, fca, toolconf)<br>
+        return _ifail(repo, mynode, orig, fcd, fco, fca, toolconf,<br>
+                      labels)<br>
<br>
 @internaltool('local', nomerge)<br>
-def _ilocal(repo, mynode, orig, fcd, fco, fca, toolconf):<br>
+def _ilocal(repo, mynode, orig, fcd, fco, fca, toolconf, labels=None):<br>
     """Uses the local version of files as the merged version."""<br>
     return 0, fcd.isabsent()<br>
<br>
 @internaltool('other', nomerge)<br>
-def _iother(repo, mynode, orig, fcd, fco, fca, toolconf):<br>
+def _iother(repo, mynode, orig, fcd, fco, fca, toolconf, labels=None):<br>
     """Uses the other version of files as the merged version."""<br>
     if fco.isabsent():<br>
         # local changed, remote deleted -- 'deleted' picked<br>
@@ -284,7 +290,7 @@<br>
     return 0, deleted<br>
<br>
 @internaltool('fail', nomerge)<br>
-def _ifail(repo, mynode, orig, fcd, fco, fca, toolconf):<br>
+def _ifail(repo, mynode, orig, fcd, fco, fca, toolconf, labels=None):<br>
     """<br>
     Rather than attempting to merge files that were modified on both<br>
     branches, it marks them as unresolved. The resolve command must be<br>
@@ -536,6 +542,25 @@<br>
         newlabels.append(_formatconflictmarker(repo, ca, tmpl, labels[2], pad))<br>
     return newlabels<br>
<br>
+def partnames(labels):<br>
+    """Return a dictionary of merge part names for use in prompts to the user<br>
+<br>
+    These names include labels if supplied"""<br>
+    if labels is None:<br>
+        return {<br>
+            "local": "local",<br>
+            "other": "other",<br>
+            "localact": "(l)ocal",<br>
+            "otheract": "(o)ther",<br>
+        }<br>
+<br>
+    return {<br>
+        "local": "local [%s]" % labels[0],<br>
+            "other": "other [%s]" % labels[1],<br>
+            "localact": "(l)ocal [%s]" % labels[0],<br>
+            "otheract": "(o)ther [%s]" % labels[1],<br>
+    }<br>
+<br>
 def _filemerge(premerge, repo, mynode, orig, fcd, fco, fca, labels=None):<br>
     """perform a 3-way merge in the working directory<br>
<br>
@@ -587,7 +612,7 @@<br>
     toolconf = tool, toolpath, binary, symlink<br>
<br>
     if mergetype == nomerge:<br>
-        r, deleted = func(repo, mynode, orig, fcd, fco, fca, toolconf)<br>
+        r, deleted = func(repo, mynode, orig, fcd, fco, fca, toolconf, labels)<br>
         return True, r, deleted<br>
<br>
     if premerge:<br>
diff --git a/mercurial/merge.py b/mercurial/merge.py<br>
--- a/mercurial/merge.py<br>
+++ b/mercurial/merge.py<br>
@@ -1537,11 +1537,13 @@<br>
         if '.hgsubstate' in actionbyfile:<br>
             f = '.hgsubstate'<br>
             m, args, msg = actionbyfile[f]<br>
+            prompts = filemerge.partnames(labels)<br>
+            prompts['f'] = f<br>
             if m == 'cd':<br>
                 if repo.ui.promptchoice(<br>
-                    _("local changed %s which remote deleted\n"<br>
+                    _("%(local)s changed %(f)s which %(other)s deleted\n"<br>
                       "use (c)hanged version or (d)elete?"<br>
-                      "$$ &Changed $$ &Delete") % f, 0):<br>
+                      "$$ &Changed $$ &Delete") % prompts, 0):<br>
                     actionbyfile[f] = ('r', None, "prompt delete")<br>
                 elif f in p1:<br>
                     actionbyfile[f] = ('am', None, "prompt keep")<br>
@@ -1551,9 +1553,9 @@<br>
                 f1, f2, fa, move, anc = args<br>
                 flags = p2[f2].flags()<br>
                 if repo.ui.promptchoice(<br>
-                    _("remote changed %s which local deleted\n"<br>
+                    _("%(other)s changed %(f)s which %(local)s deleted\n"<br>
                       "use (c)hanged version or leave (d)eleted?"<br>
-                      "$$ &Changed $$ &Deleted") % f, 0) == 0:<br>
+                      "$$ &Changed $$ &Deleted") % prompts, 0) == 0:<br>
                     actionbyfile[f] = ('g', (flags, False), "prompt recreating")<br>
                 else:<br>
                     del actionbyfile[f]<br>
diff --git a/tests/failfilemerge.py b/tests/failfilemerge.py<br>
--- a/tests/failfilemerge.py<br>
+++ b/tests/failfilemerge.py<br>
@@ -9,7 +9,7 @@<br>
 )<br>
<br>
 def failfilemerge(filemergefn,<br>
-        premerge, repo, mynode, orig, fcd, fco, fca, labels=None):<br>
+                  premerge, repo, mynode, orig, fcd, fco, fca, labels=None):<br>
     raise error.Abort("^C")<br>
     return filemergefn(premerge, repo, mynode, orig, fcd, fco, fca, labels)<br>
<br>
diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t<br>
--- a/tests/test-commit-amend.t<br>
+++ b/tests/test-commit-amend.t<br>
@@ -813,7 +813,7 @@<br>
   $ hg merge -q bar --config ui.interactive=True << EOF<br>
   > c<br>
   > EOF<br>
-  local changed aa which remote deleted<br>
+  local changed aa which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? c<br>
   $ hg ci -m 'merge bar (with conflicts)'<br>
   $ hg log --config diff.git=1 -pr .<br>
diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t<br>
--- a/tests/test-copy-move-merge.t<br>
+++ b/tests/test-copy-move-merge.t<br>
@@ -85,7 +85,7 @@<br>
   > c<br>
   > EOF<br>
   rebasing 2:add3f11052fa "other" (tip)<br>
-  remote changed a which local deleted<br>
+  other [source] changed a which local [dest] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c<br>
<br>
   $ cat b<br>
diff --git a/tests/test-largefiles-update.t b/tests/test-largefiles-update.t<br>
--- a/tests/test-largefiles-update.t<br>
+++ b/tests/test-largefiles-update.t<br>
@@ -611,7 +611,7 @@<br>
   > EOF<br>
   rebasing 1:72518492caa6 "#1"<br>
   rebasing 4:07d6153b5c04 "#4"<br>
-  local changed .hglf/large1 which remote deleted<br>
+  local [dest] changed .hglf/large1 which other [source] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? c<br>
<br>
   $ hg diff -c "tip~1" --nodates .hglf/large1 | grep '^[+-][0-9a-z]'<br>
diff --git a/tests/test-merge-changedelete.t b/tests/test-merge-changedelete.t<br>
--- a/tests/test-merge-changedelete.t<br>
+++ b/tests/test-merge-changedelete.t<br>
@@ -54,9 +54,9 @@<br>
 Non-interactive merge:<br>
<br>
   $ hg merge -y<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging file3<br>
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')<br>
@@ -117,9 +117,9 @@<br>
   > c<br>
   > d<br>
   > EOF<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? c<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? d<br>
   merging file3<br>
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')<br>
@@ -181,18 +181,18 @@<br>
   > baz<br>
   > c<br>
   > EOF<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? foo<br>
   unrecognized response<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? bar<br>
   unrecognized response<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? d<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? baz<br>
   unrecognized response<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c<br>
   merging file3<br>
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')<br>
@@ -250,9 +250,9 @@<br>
   $ hg merge --config ui.interactive=true <<EOF<br>
   > d<br>
   > EOF<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? d<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   merging file3<br>
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')<br>
@@ -445,9 +445,9 @@<br>
   1 other heads for branch "default"<br>
<br>
   $ hg merge --config ui.interactive=True --tool :prompt<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   no tool found to merge file3<br>
   keep (l)ocal, take (o)ther, or leave (u)nresolved?<br>
@@ -501,9 +501,9 @@<br>
   1 other heads for branch "default"<br>
<br>
   $ hg merge --tool :prompt<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   no tool found to merge file3<br>
   keep (l)ocal, take (o)ther, or leave (u)nresolved? u<br>
@@ -555,9 +555,9 @@<br>
   1 other heads for branch "default"<br>
<br>
   $ hg merge --tool :merge3<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging file3<br>
   warning: conflicts while merging file3! (edit, then use 'hg resolve --mark')<br>
@@ -642,9 +642,9 @@<br>
   (status identical)<br>
<br>
   === :other -> :prompt ===<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   no tool found to merge file3<br>
   keep (l)ocal, take (o)ther, or leave (u)nresolved?<br>
@@ -671,9 +671,9 @@<br>
   (status identical)<br>
<br>
   === :local -> :prompt ===<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   no tool found to merge file3<br>
   keep (l)ocal, take (o)ther, or leave (u)nresolved?<br>
@@ -690,9 +690,9 @@<br>
   (status identical)<br>
<br>
   === :fail -> :prompt ===<br>
-  local changed file1 which remote deleted<br>
+  local changed file1 which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other changed file2 which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   no tool found to merge file3<br>
   keep (l)ocal, take (o)ther, or leave (u)nresolved?<br>
@@ -717,9 +717,9 @@<br>
   $ echo changed >> file1<br>
   $ hg rm file2<br>
   $ hg update 1 -y<br>
-  local changed file1 which remote deleted<br>
+  local [working copy] changed file1 which other [destination] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  remote changed file2 which local deleted<br>
+  other [destination] changed file2 which local [working copy] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   1 files updated, 0 files merged, 0 files removed, 2 files unresolved<br>
   use 'hg resolve' to retry unresolved file merges<br>
@@ -893,9 +893,9 @@<br>
   $ echo changed >> file1<br>
   $ hg rm file2<br>
   $ hg update 1 --config ui.interactive=True --tool :prompt<br>
-  local changed file1 which remote deleted<br>
+  local [working copy] changed file1 which other [destination] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other [destination] changed file2 which local [working copy] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   1 files updated, 0 files merged, 0 files removed, 2 files unresolved<br>
   use 'hg resolve' to retry unresolved file merges<br>
@@ -943,9 +943,9 @@<br>
   $ echo changed >> file1<br>
   $ hg rm file2<br>
   $ hg update 1 --tool :merge3<br>
-  local changed file1 which remote deleted<br>
+  local [working copy] changed file1 which other [destination] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  remote changed file2 which local deleted<br>
+  other [destination] changed file2 which local [working copy] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   1 files updated, 0 files merged, 0 files removed, 2 files unresolved<br>
   use 'hg resolve' to retry unresolved file merges<br>
@@ -999,9 +999,9 @@<br>
   (status identical)<br>
<br>
   === :other -> :prompt ===<br>
-  local changed file1 which remote deleted<br>
+  local [working copy] changed file1 which other [destination] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other [destination] changed file2 which local [working copy] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   --- diff of status ---<br>
   (status identical)<br>
@@ -1026,9 +1026,9 @@<br>
   (status identical)<br>
<br>
   === :local -> :prompt ===<br>
-  local changed file1 which remote deleted<br>
+  local [working copy] changed file1 which other [destination] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other [destination] changed file2 which local [working copy] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   --- diff of status ---<br>
   (status identical)<br>
@@ -1043,9 +1043,9 @@<br>
   (status identical)<br>
<br>
   === :fail -> :prompt ===<br>
-  local changed file1 which remote deleted<br>
+  local [working copy] changed file1 which other [destination] deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved?<br>
-  remote changed file2 which local deleted<br>
+  other [destination] changed file2 which local [working copy] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved?<br>
   --- diff of status ---<br>
   (status identical)<br>
diff --git a/tests/test-merge-force.t b/tests/test-merge-force.t<br>
--- a/tests/test-merge-force.t<br>
+++ b/tests/test-merge-force.t<br>
@@ -142,55 +142,55 @@<br>
 #   in the same way, so it could potentially be left alone<br>
<br>
   $ hg merge -f --tool internal:merge3 'desc("remote")' 2>&1 | tee $TESTTMP/merge-output-1<br>
-  local changed content1_missing_content1_content4-tracked which remote deleted<br>
+  local changed content1_missing_content1_content4-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  local changed content1_missing_content3_content3-tracked which remote deleted<br>
+  local changed content1_missing_content3_content3-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  local changed content1_missing_content3_content4-tracked which remote deleted<br>
+  local changed content1_missing_content3_content4-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  local changed content1_missing_missing_content4-tracked which remote deleted<br>
+  local changed content1_missing_missing_content4-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_content1-untracked which local deleted<br>
+  other changed content1_content2_content1_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_content2-untracked which local deleted<br>
+  other changed content1_content2_content1_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_content4-untracked which local deleted<br>
+  other changed content1_content2_content1_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_missing-tracked which local deleted<br>
+  other changed content1_content2_content1_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_missing-untracked which local deleted<br>
+  other changed content1_content2_content1_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_content1-untracked which local deleted<br>
+  other changed content1_content2_content2_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_content2-untracked which local deleted<br>
+  other changed content1_content2_content2_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_content4-untracked which local deleted<br>
+  other changed content1_content2_content2_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_missing-tracked which local deleted<br>
+  other changed content1_content2_content2_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_missing-untracked which local deleted<br>
+  other changed content1_content2_content2_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_content1-untracked which local deleted<br>
+  other changed content1_content2_content3_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_content2-untracked which local deleted<br>
+  other changed content1_content2_content3_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_content3-untracked which local deleted<br>
+  other changed content1_content2_content3_content3-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_content4-untracked which local deleted<br>
+  other changed content1_content2_content3_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_missing-tracked which local deleted<br>
+  other changed content1_content2_content3_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_missing-untracked which local deleted<br>
+  other changed content1_content2_content3_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_content1-untracked which local deleted<br>
+  other changed content1_content2_missing_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_content2-untracked which local deleted<br>
+  other changed content1_content2_missing_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_content4-untracked which local deleted<br>
+  other changed content1_content2_missing_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_missing-tracked which local deleted<br>
+  other changed content1_content2_missing_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_missing-untracked which local deleted<br>
+  other changed content1_content2_missing_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content1_content4-tracked<br>
   merging content1_content2_content2_content1-tracked<br>
@@ -703,63 +703,63 @@<br>
   (no more unresolved files)<br>
   $ hg resolve --unmark --all<br>
   $ hg resolve --all --tool internal:merge3<br>
-  remote changed content1_content2_content1_content1-untracked which local deleted<br>
+  other changed content1_content2_content1_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_content2-untracked which local deleted<br>
+  other changed content1_content2_content1_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content1_content4-tracked<br>
-  remote changed content1_content2_content1_content4-untracked which local deleted<br>
+  other changed content1_content2_content1_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_missing-tracked which local deleted<br>
+  other changed content1_content2_content1_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content1_missing-untracked which local deleted<br>
+  other changed content1_content2_content1_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content2_content1-tracked<br>
-  remote changed content1_content2_content2_content1-untracked which local deleted<br>
+  other changed content1_content2_content2_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_content2-untracked which local deleted<br>
+  other changed content1_content2_content2_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content2_content4-tracked<br>
-  remote changed content1_content2_content2_content4-untracked which local deleted<br>
+  other changed content1_content2_content2_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_missing-tracked which local deleted<br>
+  other changed content1_content2_content2_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content2_missing-untracked which local deleted<br>
+  other changed content1_content2_content2_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content3_content1-tracked<br>
-  remote changed content1_content2_content3_content1-untracked which local deleted<br>
+  other changed content1_content2_content3_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_content2-untracked which local deleted<br>
+  other changed content1_content2_content3_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content3_content3-tracked<br>
-  remote changed content1_content2_content3_content3-untracked which local deleted<br>
+  other changed content1_content2_content3_content3-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_content3_content4-tracked<br>
-  remote changed content1_content2_content3_content4-untracked which local deleted<br>
+  other changed content1_content2_content3_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_missing-tracked which local deleted<br>
+  other changed content1_content2_content3_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_content3_missing-untracked which local deleted<br>
+  other changed content1_content2_content3_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_missing_content1-tracked<br>
-  remote changed content1_content2_missing_content1-untracked which local deleted<br>
+  other changed content1_content2_missing_content1-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_content2-untracked which local deleted<br>
+  other changed content1_content2_missing_content2-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging content1_content2_missing_content4-tracked<br>
-  remote changed content1_content2_missing_content4-untracked which local deleted<br>
+  other changed content1_content2_missing_content4-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_missing-tracked which local deleted<br>
+  other changed content1_content2_missing_missing-tracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  remote changed content1_content2_missing_missing-untracked which local deleted<br>
+  other changed content1_content2_missing_missing-untracked which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
-  local changed content1_missing_content1_content4-tracked which remote deleted<br>
+  local changed content1_missing_content1_content4-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  local changed content1_missing_content3_content3-tracked which remote deleted<br>
+  local changed content1_missing_content3_content3-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  local changed content1_missing_content3_content4-tracked which remote deleted<br>
+  local changed content1_missing_content3_content4-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
-  local changed content1_missing_missing_content4-tracked which remote deleted<br>
+  local changed content1_missing_missing_content4-tracked which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
   merging missing_content2_content2_content4-tracked<br>
   merging missing_content2_content3_content3-tracked<br>
diff --git a/tests/test-merge-remove.t b/tests/test-merge-remove.t<br>
--- a/tests/test-merge-remove.t<br>
+++ b/tests/test-merge-remove.t<br>
@@ -102,7 +102,7 @@<br>
 Those who use force will lose<br>
<br>
   $ hg merge -f<br>
-  remote changed bar which local deleted<br>
+  other changed bar which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
   merging foo1 and foo to foo1<br>
   0 files updated, 1 files merged, 0 files removed, 1 files unresolved<br>
diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t<br>
--- a/tests/test-merge-types.t<br>
+++ b/tests/test-merge-types.t<br>
@@ -173,7 +173,7 @@<br>
   (couldn't find merge tool hgmerge|tool hgmerge can't handle symlinks) (re)<br>
   picked tool ':prompt' for a (binary False symlink True changedelete False)<br>
   no tool found to merge a<br>
-  keep (l)ocal, take (o)ther, or leave (u)nresolved? u<br>
+  keep (l)ocal [working copy], take (o)ther [destination], or leave (u)nresolved? u<br>
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved<br>
   use 'hg resolve' to retry unresolved file merges<br>
   1 other heads for branch "default"<br>
diff --git a/tests/test-rebase-newancestor.t b/tests/test-rebase-newancestor.t<br>
--- a/tests/test-rebase-newancestor.t<br>
+++ b/tests/test-rebase-newancestor.t<br>
@@ -135,7 +135,7 @@<br>
   note: rebase of 1:1d1a643d390e created no changes to commit<br>
   rebasing 2:ec2c14fb2984 "dev: f-dev stuff"<br>
   rebasing 4:4b019212aaf6 "dev: merge default"<br>
-  remote changed f-default which local deleted<br>
+  other [source] changed f-default which local [dest] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c<br>
   rebasing 6:9455ee510502 "dev: merge default"<br>
   saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-43e9e04b-backup.hg (glob)<br>
@@ -164,7 +164,7 @@<br>
   > EOF<br>
   rebasing 2:ec2c14fb2984 "dev: f-dev stuff"<br>
   rebasing 4:4b019212aaf6 "dev: merge default"<br>
-  remote changed f-default which local deleted<br>
+  other [source] changed f-default which local [dest] deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c<br>
   rebasing 6:9455ee510502 "dev: merge default"<br>
   saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-62d0b222-backup.hg (glob)<br>
diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t<br>
--- a/tests/test-rename-merge2.t<br>
+++ b/tests/test-rename-merge2.t<br>
@@ -694,7 +694,7 @@<br>
   starting 4 threads for background file closing (?)<br>
    a: prompt deleted/changed -> m (premerge)<br>
   picked tool ':prompt' for a (binary False symlink False changedelete True)<br>
-  remote changed a which local deleted<br>
+  other changed a which local deleted<br>
   use (c)hanged version, leave (d)eleted, or leave (u)nresolved? u<br>
    b: both created -> m (premerge)<br>
   picked tool 'python ../merge' for b (binary False symlink False changedelete False)<br>
@@ -739,7 +739,7 @@<br>
   starting 4 threads for background file closing (?)<br>
    a: prompt changed/deleted -> m (premerge)<br>
   picked tool ':prompt' for a (binary False symlink False changedelete True)<br>
-  local changed a which remote deleted<br>
+  local changed a which other deleted<br>
   use (c)hanged version, (d)elete, or leave (u)nresolved? u<br>
    b: both created -> m (premerge)<br>
   picked tool 'python ../merge' for b (binary False symlink False changedelete False)<br>
diff --git a/tests/test-subrepo-missing.t b/tests/test-subrepo-missing.t<br>
--- a/tests/test-subrepo-missing.t<br>
+++ b/tests/test-subrepo-missing.t<br>
@@ -62,7 +62,7 @@<br>
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved<br>
   $ rm .hgsubstate<br>
   $ hg up 0<br>
-  remote changed .hgsubstate which local deleted<br>
+  other [destination] changed .hgsubstate which local [working copy] deleted<br>
   use (c)hanged version or leave (d)eleted? c<br>
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved<br>
   $ hg st<br>
_______________________________________________<br>
Mercurial-devel mailing list<br>
<a href="mailto:Mercurial-devel@mercurial-scm.org">Mercurial-devel@mercurial-scm.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=CwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=mEgSWILcY4c4W3zjApBQLA&m=WWxk_sUtfS735kTDX-iaStMltYxpF4VdjJopU_F0sJ4&s=X9aWuzk_LPVH2QYHbxXfsEQNeHrgIHkOUbvOui4fxTA&e=" rel="noreferrer" target="_blank">https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel</a><br>
</blockquote>
</div>
</div>
</body>
</html>