help: revise explanation about capability check while selecting merge tool
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 22 Aug 2018 14:22:59 +0900
changeset 39268 0dfcc348d383
parent 39267 88c5a3ef54b1
child 39269 d0e8933d6dad
help: revise explanation about capability check while selecting merge tool This is follow up of 7c6044634957 and cded904f7acc. This patch adds explanations about: - notation in capability columns in the table - how capabilities of external merge tools are treated
mercurial/help/merge-tools.txt
tests/test-help.t
--- a/mercurial/help/merge-tools.txt	Wed Aug 22 14:08:27 2018 +0900
+++ b/mercurial/help/merge-tools.txt	Wed Aug 22 14:22:59 2018 +0900
@@ -72,22 +72,29 @@
 
 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.
+For historical reason, Mercurial treats merge tools as below while
+examining rules above.
 
 ==== =============== ====== =======
 step specified via   binary symlink
 ==== =============== ====== =======
-1.   --tool          o      o
-2.   HGMERGE         o      o
-3.   merge-patterns  o (*)  x (*)
-4.   ui.merge        x (*)  x (*)
+1.   --tool          o/o    o/o
+2.   HGMERGE         o/o    o/o
+3.   merge-patterns  o/o(*) x/?(*)
+4.   ui.merge        x/?(*) x/?(*)
 ==== =============== ====== =======
 
+Each capability column indicates Mercurial behavior for
+internal/external merge tools at examining each rule.
+
+- "o": "assume that a tool has capability"
+- "x": "assume that a tool does not have capability"
+- "?": "check actual capability of a tool"
+
 If ``merge.strict-capability-check`` configuration is true, Mercurial
-checks capabilities of internal merge tools strictly in (*) cases
-above. It is false by default for backward compatibility.
+checks capabilities of merge tools strictly in (*) cases above (= each
+capability column becomes "?/?"). It is false by default for backward
+compatibility.
 
 .. note::
 
--- a/tests/test-help.t	Wed Aug 22 14:08:27 2018 +0900
+++ b/tests/test-help.t	Wed Aug 22 14:22:59 2018 +0900
@@ -1918,20 +1918,26 @@
          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.
+      For historical reason, Mercurial treats merge tools as below while
+      examining rules above.
   
       step specified via  binary symlink
       ----------------------------------
-      1.   --tool         o      o
-      2.   HGMERGE        o      o
-      3.   merge-patterns o (*)  x (*)
-      4.   ui.merge       x (*)  x (*)
+      1.   --tool         o/o    o/o
+      2.   HGMERGE        o/o    o/o
+      3.   merge-patterns o/o(*) x/?(*)
+      4.   ui.merge       x/?(*) x/?(*)
+  
+      Each capability column indicates Mercurial behavior for internal/external
+      merge tools at examining each rule.
+  
+      - "o": "assume that a tool has capability"
+      - "x": "assume that a tool does not have capability"
+      - "?": "check actual capability of a tool"
   
       If "merge.strict-capability-check" configuration is true, Mercurial checks
-      capabilities of internal merge tools strictly in (*) cases above. It is
-      false by default for backward compatibility.
+      capabilities of merge tools strictly in (*) cases above (= each capability
+      column becomes "?/?"). It is false by default for backward compatibility.
   
       Note:
          After selecting a merge program, Mercurial will by default attempt to