Patchwork [1,of,4,mergedriver] filemerge: add debug output for whether this is a change/delete conflict

login
register
mail settings
Submitter Siddharth Agarwal
Date Dec. 1, 2015, 5:57 p.m.
Message ID <7cdbfb26cf01159866d6.1448992662@dev666.prn1.facebook.com>
Download mbox | patch
Permalink /patch/11714/
State Accepted
Headers show

Comments

Siddharth Agarwal - Dec. 1, 2015, 5:57 p.m.
# HG changeset patch
# User Siddharth Agarwal <sid0@fb.com>
# Date 1448490326 28800
#      Wed Nov 25 14:25:26 2015 -0800
# Node ID 7cdbfb26cf01159866d692adc0f391e93511d1e7
# Parent  c4d5c347c95ae0ff73e685edb6f61849b3ef77f7
# Available At http://42.netv6.net/sid0-wip/hg/
#              hg pull http://42.netv6.net/sid0-wip/hg/ -r 7cdbfb26cf01
filemerge: add debug output for whether this is a change/delete conflict

Just like binary and symlink conflicts, change/delete conflicts influence the
tool picked.

Patch

diff --git a/mercurial/filemerge.py b/mercurial/filemerge.py
--- a/mercurial/filemerge.py
+++ b/mercurial/filemerge.py
@@ -566,8 +566,8 @@  def _filemerge(premerge, repo, mynode, o
     if tool in internals and tool.startswith('internal:'):
         # normalize to new-style names (':merge' etc)
         tool = tool[len('internal'):]
-    ui.debug("picked tool '%s' for %s (binary %s symlink %s)\n" %
-               (tool, fd, binary, symlink))
+    ui.debug("picked tool '%s' for %s (binary %s symlink %s changedelete %s)\n"
+             % (tool, fd, binary, symlink, changedelete))
 
     if tool in internals:
         func = internals[tool]
diff --git a/tests/test-backout.t b/tests/test-backout.t
--- a/tests/test-backout.t
+++ b/tests/test-backout.t
@@ -709,7 +709,7 @@  Test usage of `hg resolve` in case of co
   update: (current)
   phases: 3 draft
   $ hg resolve --all --debug
-  picked tool ':merge' for foo (binary False symlink False)
+  picked tool ':merge' for foo (binary False symlink False changedelete False)
   merging foo
   my foo@b71750c4b0fd+ other foo@a30dd8addae3 ancestor foo@913609522437
    premerge successful
diff --git a/tests/test-copy-move-merge.t b/tests/test-copy-move-merge.t
--- a/tests/test-copy-move-merge.t
+++ b/tests/test-copy-move-merge.t
@@ -35,12 +35,12 @@ 
    preserving a for resolve of c
   removing a
    b: remote moved from a -> m (premerge)
-  picked tool ':merge' for b (binary False symlink False)
+  picked tool ':merge' for b (binary False symlink False changedelete False)
   merging a and b to b
   my b@add3f11052fa+ other b@17c05bb7fcb6 ancestor a@b8bf91eeebbc
    premerge successful
    c: remote moved from a -> m (premerge)
-  picked tool ':merge' for c (binary False symlink False)
+  picked tool ':merge' for c (binary False symlink False changedelete False)
   merging a and c to c
   my c@add3f11052fa+ other c@17c05bb7fcb6 ancestor a@b8bf91eeebbc
    premerge successful
diff --git a/tests/test-double-merge.t b/tests/test-double-merge.t
--- a/tests/test-double-merge.t
+++ b/tests/test-double-merge.t
@@ -38,12 +38,12 @@  we get conflicts that shouldn't be there
    preserving foo for resolve of bar
    preserving foo for resolve of foo
    bar: remote copied from foo -> m (premerge)
-  picked tool ':merge' for bar (binary False symlink False)
+  picked tool ':merge' for bar (binary False symlink False changedelete False)
   merging foo and bar to bar
   my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc
    premerge successful
    foo: versions differ -> m (premerge)
-  picked tool ':merge' for foo (binary False symlink False)
+  picked tool ':merge' for foo (binary False symlink False changedelete False)
   merging foo
   my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc
    premerge successful
diff --git a/tests/test-graft.t b/tests/test-graft.t
--- a/tests/test-graft.t
+++ b/tests/test-graft.t
@@ -154,7 +154,7 @@  Graft out of order, skipping a merge and
    ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6
    preserving b for resolve of b
    b: local copied/moved from a -> m (premerge)
-  picked tool ':merge' for b (binary False symlink False)
+  picked tool ':merge' for b (binary False symlink False changedelete False)
   merging b and a to b
   my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622
    premerge successful
@@ -184,11 +184,11 @@  Graft out of order, skipping a merge and
   getting d
    b: remote unchanged -> k
    e: versions differ -> m (premerge)
-  picked tool ':merge' for e (binary False symlink False)
+  picked tool ':merge' for e (binary False symlink False changedelete False)
   merging e
   my e@1905859650ec+ other e@9c233e8e184d ancestor e@68795b066622
    e: versions differ -> m (merge)
-  picked tool ':merge' for e (binary False symlink False)
+  picked tool ':merge' for e (binary False symlink False changedelete False)
   my e@1905859650ec+ other e@9c233e8e184d ancestor e@68795b066622
   warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
   abort: unresolved conflicts, can't continue
diff --git a/tests/test-issue672.t b/tests/test-issue672.t
--- a/tests/test-issue672.t
+++ b/tests/test-issue672.t
@@ -66,7 +66,7 @@  https://bz.mercurial-scm.org/672
    ancestor: c64f439569a9, local: e327dca35ac8+, remote: 746e9549ea96
    preserving 1a for resolve of 1a
    1a: local copied/moved from 1 -> m (premerge)
-  picked tool ':merge' for 1a (binary False symlink False)
+  picked tool ':merge' for 1a (binary False symlink False changedelete False)
   merging 1a and 1 to 1a
   my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
    premerge successful
@@ -89,7 +89,7 @@  https://bz.mercurial-scm.org/672
    preserving 1 for resolve of 1a
   removing 1
    1a: remote moved from 1 -> m (premerge)
-  picked tool ':merge' for 1a (binary False symlink False)
+  picked tool ':merge' for 1a (binary False symlink False changedelete False)
   merging 1 and 1a to 1a
   my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@81f4b099af3d
    premerge successful
diff --git a/tests/test-merge-commit.t b/tests/test-merge-commit.t
--- a/tests/test-merge-commit.t
+++ b/tests/test-merge-commit.t
@@ -73,7 +73,7 @@  This should use bar@rev2 as the ancestor
    ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28
    preserving bar for resolve of bar
    bar: versions differ -> m (premerge)
-  picked tool ':merge' for bar (binary False symlink False)
+  picked tool ':merge' for bar (binary False symlink False changedelete False)
   merging bar
   my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
    premerge successful
@@ -159,7 +159,7 @@  This should use bar@rev2 as the ancestor
    ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0
    preserving bar for resolve of bar
    bar: versions differ -> m (premerge)
-  picked tool ':merge' for bar (binary False symlink False)
+  picked tool ':merge' for bar (binary False symlink False changedelete False)
   merging bar
   my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
    premerge successful
diff --git a/tests/test-merge-criss-cross.t b/tests/test-merge-criss-cross.t
--- a/tests/test-merge-criss-cross.t
+++ b/tests/test-merge-criss-cross.t
@@ -83,11 +83,11 @@  Criss cross merging
    f1: remote is newer -> g
   getting f1
    f2: versions differ -> m (premerge)
-  picked tool ':dump' for f2 (binary False symlink False)
+  picked tool ':dump' for f2 (binary False symlink False changedelete False)
   merging f2
   my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@40494bf2444c
    f2: versions differ -> m (merge)
-  picked tool ':dump' for f2 (binary False symlink False)
+  picked tool ':dump' for f2 (binary False symlink False changedelete False)
   my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@40494bf2444c
   1 files updated, 0 files merged, 0 files removed, 1 files unresolved
   use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
diff --git a/tests/test-merge-types.t b/tests/test-merge-types.t
--- a/tests/test-merge-types.t
+++ b/tests/test-merge-types.t
@@ -36,7 +36,7 @@  Symlink is local parent, executable is o
    ancestor: c334dc3be0da, local: 521a1e40188f+, remote: 3574f3e69b1c
    preserving a for resolve of a
    a: versions differ -> m (premerge)
-  picked tool ':merge' for a (binary False symlink True)
+  picked tool ':merge' for a (binary False symlink True changedelete False)
   merging a
   my a@521a1e40188f+ other a@3574f3e69b1c ancestor a@c334dc3be0da
   warning: internal :merge cannot merge symlinks for a
@@ -69,7 +69,7 @@  Symlink is other parent, executable is l
    ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
    preserving a for resolve of a
    a: versions differ -> m (premerge)
-  picked tool ':union' for a (binary False symlink True)
+  picked tool ':union' for a (binary False symlink True changedelete False)
   merging a
   my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da
   warning: internal :union cannot merge symlinks for a
@@ -92,7 +92,7 @@  Symlink is other parent, executable is l
    ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
    preserving a for resolve of a
    a: versions differ -> m (premerge)
-  picked tool ':merge3' for a (binary False symlink True)
+  picked tool ':merge3' for a (binary False symlink True changedelete False)
   merging a
   my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da
   warning: internal :merge3 cannot merge symlinks for a
@@ -115,7 +115,7 @@  Symlink is other parent, executable is l
    ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
    preserving a for resolve of a
    a: versions differ -> m (premerge)
-  picked tool ':merge-local' for a (binary False symlink True)
+  picked tool ':merge-local' for a (binary False symlink True changedelete False)
   merging a
   my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da
   warning: internal :merge-local cannot merge symlinks for a
@@ -137,7 +137,7 @@  Symlink is other parent, executable is l
    ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
    preserving a for resolve of a
    a: versions differ -> m (premerge)
-  picked tool ':merge-other' for a (binary False symlink True)
+  picked tool ':merge-other' for a (binary False symlink True changedelete False)
   merging a
   my a@3574f3e69b1c+ other a@521a1e40188f ancestor a@c334dc3be0da
   warning: internal :merge-other cannot merge symlinks for a
@@ -170,7 +170,7 @@  Update to link with local change should 
    preserving a for resolve of a
    a: versions differ -> m (premerge)
   (couldn't find merge tool hgmerge|tool hgmerge can't handle symlinks) (re)
-  picked tool ':prompt' for a (binary False symlink True)
+  picked tool ':prompt' for a (binary False symlink True changedelete False)
   no tool found to merge a
   keep (l)ocal or take (o)ther? l
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
diff --git a/tests/test-merge7.t b/tests/test-merge7.t
--- a/tests/test-merge7.t
+++ b/tests/test-merge7.t
@@ -85,11 +85,11 @@  pull and merge from test-a again
    ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8
    preserving test.txt for resolve of test.txt
    test.txt: versions differ -> m (premerge)
-  picked tool ':merge' for test.txt (binary False symlink False)
+  picked tool ':merge' for test.txt (binary False symlink False changedelete False)
   merging test.txt
   my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118
    test.txt: versions differ -> m (merge)
-  picked tool ':merge' for test.txt (binary False symlink False)
+  picked tool ':merge' for test.txt (binary False symlink False changedelete False)
   my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118
   warning: conflicts while merging test.txt! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
diff --git a/tests/test-rename-merge1.t b/tests/test-rename-merge1.t
--- a/tests/test-rename-merge1.t
+++ b/tests/test-rename-merge1.t
@@ -44,7 +44,7 @@ 
    b2: remote created -> g
   getting b2
    b: remote moved from a -> m (premerge)
-  picked tool ':merge' for b (binary False symlink False)
+  picked tool ':merge' for b (binary False symlink False changedelete False)
   merging a and b to b
   my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
    premerge successful
diff --git a/tests/test-rename-merge2.t b/tests/test-rename-merge2.t
--- a/tests/test-rename-merge2.t
+++ b/tests/test-rename-merge2.t
@@ -90,16 +90,16 @@  args:
    preserving rev for resolve of rev
    a: remote unchanged -> k
    b: remote copied from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging a and b to b
   my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
    premerge successful
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -130,16 +130,16 @@  args:
    a: remote is newer -> g
   getting a
    b: local copied/moved from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b and a to b
   my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337
    premerge successful
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -169,16 +169,16 @@  args:
    preserving rev for resolve of rev
   removing a
    b: remote moved from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging a and b to b
   my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337
    premerge successful
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -206,16 +206,16 @@  args:
    preserving b for resolve of b
    preserving rev for resolve of rev
    b: local copied/moved from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b and a to b
   my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337
    premerge successful
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -244,11 +244,11 @@  args:
    b: remote created -> g
   getting b
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -275,11 +275,11 @@  args:
    ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336
    preserving rev for resolve of rev
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -310,11 +310,11 @@  args:
    b: remote created -> g
   getting b
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -340,11 +340,11 @@  args:
    ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336
    preserving rev for resolve of rev
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -368,20 +368,20 @@  args:
    preserving b for resolve of b
    preserving rev for resolve of rev
    b: both renamed from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
    b: both renamed from a -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -418,11 +418,11 @@  m "um a c" "um x c" "      " "10 do merg
    c: remote created -> g
   getting c
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -447,20 +447,20 @@  m "um a c" "um x c" "      " "10 do merg
    preserving b for resolve of b
    preserving rev for resolve of rev
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -487,20 +487,20 @@  m "um a c" "um x c" "      " "10 do merg
    a: other deleted -> r
   removing a
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -526,20 +526,20 @@  m "um a c" "um x c" "      " "10 do merg
    a: remote is newer -> g
   getting a
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -566,20 +566,20 @@  m "um a c" "um x c" "      " "10 do merg
    a: other deleted -> r
   removing a
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -605,20 +605,20 @@  m "um a c" "um x c" "      " "10 do merg
    a: remote is newer -> g
   getting a
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -644,20 +644,20 @@  m "um a c" "um x c" "      " "10 do merg
    preserving rev for resolve of rev
    a: remote unchanged -> k
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -682,24 +682,24 @@  m "um a c" "um x c" "      " "10 do merg
    preserving b for resolve of b
    preserving rev for resolve of rev
    a: prompt deleted/changed -> m (premerge)
-  picked tool ':prompt' for a (binary False symlink False)
+  picked tool ':prompt' for a (binary False symlink False changedelete True)
   remote changed a which local deleted
   use (c)hanged version or leave (d)eleted? c
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -725,24 +725,24 @@  m "um a c" "um x c" "      " "10 do merg
    preserving b for resolve of b
    preserving rev for resolve of rev
    a: prompt changed/deleted -> m (premerge)
-  picked tool ':prompt' for a (binary False symlink False)
+  picked tool ':prompt' for a (binary False symlink False changedelete True)
   local changed a which remote deleted
   use (c)hanged version or (d)elete? c
    b: both created -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b
   my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
    b: both created -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -771,20 +771,20 @@  m "um a c" "um x c" "      " "10 do merg
    preserving rev for resolve of rev
   removing a
    b: remote moved from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging a and b to b
   my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
    b: remote moved from a -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -812,20 +812,20 @@  m "um a c" "um x c" "      " "10 do merg
    preserving b for resolve of b
    preserving rev for resolve of rev
    b: local copied/moved from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b and a to b
   my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
    b: local copied/moved from a -> m (merge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/b* * * (glob)
   merge tool returned: 0
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
@@ -860,16 +860,16 @@  m "nm a b" "um x a" "      " "22 get a, 
    c: remote created -> g
   getting c
    b: local copied/moved from a -> m (premerge)
-  picked tool 'python ../merge' for b (binary False symlink False)
+  picked tool 'python ../merge' for b (binary False symlink False changedelete False)
   merging b and a to b
   my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337
    premerge successful
    rev: versions differ -> m (premerge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   merging rev
   my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
    rev: versions differ -> m (merge)
-  picked tool 'python ../merge' for rev (binary False symlink False)
+  picked tool 'python ../merge' for rev (binary False symlink False changedelete False)
   my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
   launching merge tool: python ../merge *$TESTTMP/t/t/rev* * * (glob)
   merge tool returned: 0
diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t
--- a/tests/test-subrepo.t
+++ b/tests/test-subrepo.t
@@ -297,11 +297,11 @@  merge tests
    ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
    preserving t for resolve of t
    t: versions differ -> m (premerge)
-  picked tool ':merge' for t (binary False symlink False)
+  picked tool ':merge' for t (binary False symlink False changedelete False)
   merging t
   my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
    t: versions differ -> m (merge)
-  picked tool ':merge' for t (binary False symlink False)
+  picked tool ':merge' for t (binary False symlink False changedelete False)
   my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
   warning: conflicts while merging t! (edit, then use 'hg resolve --mark')
   0 files updated, 0 files merged, 0 files removed, 1 files unresolved
diff --git a/tests/test-up-local-change.t b/tests/test-up-local-change.t
--- a/tests/test-up-local-change.t
+++ b/tests/test-up-local-change.t
@@ -50,11 +50,11 @@ 
    b: remote created -> g
   getting b
    a: versions differ -> m (premerge)
-  picked tool 'true' for a (binary False symlink False)
+  picked tool 'true' for a (binary False symlink False changedelete False)
   merging a
   my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a
    a: versions differ -> m (merge)
-  picked tool 'true' for a (binary False symlink False)
+  picked tool 'true' for a (binary False symlink False changedelete False)
   my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a
   launching merge tool: true *$TESTTMP/r2/a* * * (glob)
   merge tool returned: 0
@@ -74,11 +74,11 @@ 
    b: other deleted -> r
   removing b
    a: versions differ -> m (premerge)
-  picked tool 'true' for a (binary False symlink False)
+  picked tool 'true' for a (binary False symlink False changedelete False)
   merging a
   my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb
    a: versions differ -> m (merge)
-  picked tool 'true' for a (binary False symlink False)
+  picked tool 'true' for a (binary False symlink False changedelete False)
   my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb
   launching merge tool: true *$TESTTMP/r2/a* * * (glob)
   merge tool returned: 0
@@ -106,11 +106,11 @@ 
    b: remote created -> g
   getting b
    a: versions differ -> m (premerge)
-  picked tool 'true' for a (binary False symlink False)
+  picked tool 'true' for a (binary False symlink False changedelete False)
   merging a
   my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a
    a: versions differ -> m (merge)
-  picked tool 'true' for a (binary False symlink False)
+  picked tool 'true' for a (binary False symlink False changedelete False)
   my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a
   launching merge tool: true *$TESTTMP/r2/a* * * (glob)
   merge tool returned: 0