changeset 39121:7c6044634957

help: describe more detail about capabilities while deciding merge tool "hg help merge-tools" describes as below: (internal merge tools) will by default not handle symlinks or binary files. But in some cases, Mercurial assumes that internal merge tools have one or both of these capabilities. "hg help merge-tools" also describes as below, for matching patterns in merge-patterns configuration section. But this is not sufficient. Here, binary capabilities of the merge tool are not considered. This patch describes more detail about capabilities while deciding merge tool.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Tue, 14 Aug 2018 20:05:36 +0900
parents d7007b807fa2
children 5d3b58472660
files mercurial/help/merge-tools.txt tests/test-help.t
diffstat 2 files changed, 26 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/help/merge-tools.txt	Thu Aug 16 00:50:53 2018 -0400
+++ b/mercurial/help/merge-tools.txt	Tue Aug 14 20:05:36 2018 +0900
@@ -54,8 +54,7 @@
 
 3. If the filename of the file to be merged matches any of the patterns in the
    merge-patterns configuration section, the first usable merge tool
-   corresponding to a matching pattern is used. Here, binary capabilities of the
-   merge tool are not considered.
+   corresponding to a matching pattern is used.
 
 4. If ui.merge is set it will be considered next. If the value is not the name
    of a configured tool, the specified value is used and must be executable by
@@ -72,6 +71,19 @@
 
 8. Otherwise, ``:prompt`` is used.
 
+For historical reason, Mercurial assumes capabilities of internal
+merge tools as below while examining rules above, regardless of actual
+capabilities of them.
+
+==== =============== ====== =======
+step specified via   binary symlink
+==== =============== ====== =======
+1.   --tool          o      o
+2.   HGMERGE         o      o
+3.   merge-patterns  o      x
+4.   ui.merge        x      x
+==== =============== ====== =======
+
 .. note::
 
    After selecting a merge program, Mercurial will by default attempt
--- a/tests/test-help.t	Thu Aug 16 00:50:53 2018 -0400
+++ b/tests/test-help.t	Tue Aug 14 20:05:36 2018 +0900
@@ -1892,8 +1892,7 @@
          must be executable by the shell.
       3. If the filename of the file to be merged matches any of the patterns in
          the merge-patterns configuration section, the first usable merge tool
-         corresponding to a matching pattern is used. Here, binary capabilities
-         of the merge tool are not considered.
+         corresponding to a matching pattern is used.
       4. If ui.merge is set it will be considered next. If the value is not the
          name of a configured tool, the specified value is used and must be
          executable by the shell. Otherwise the named tool is used if it is
@@ -1906,6 +1905,17 @@
          internal ":merge" is used.
       8. Otherwise, ":prompt" is used.
   
+      For historical reason, Mercurial assumes capabilities of internal merge
+      tools as below while examining rules above, regardless of actual
+      capabilities of them.
+  
+      step specified via  binary symlink
+      ----------------------------------
+      1.   --tool         o      o
+      2.   HGMERGE        o      o
+      3.   merge-patterns o      x
+      4.   ui.merge       x      x
+  
       Note:
          After selecting a merge program, Mercurial will by default attempt to
          merge the files using a simple merge algorithm first. Only if it