Patchwork [3,of,4] help: revise explanation about capability check while selecting merge tool

login
register
mail settings
Submitter Katsunori FUJIWARA
Date Aug. 24, 2018, 6:20 p.m.
Message ID <9550ea4f1d737a7f3d79.1535134844@blacknile>
Download mbox | patch
Permalink /patch/34032/
State Accepted
Headers show

Comments

Katsunori FUJIWARA - Aug. 24, 2018, 6:20 p.m.
# HG changeset patch
# User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
# Date 1534915379 -32400
#      Wed Aug 22 14:22:59 2018 +0900
# Node ID 9550ea4f1d737a7f3d79fbf2e1aa173497f75d4b
# Parent  222400828ff78e0a44cdf20a57cba679304ca913
# Available At https://bitbucket.org/foozy/mercurial-wip
#              hg pull https://bitbucket.org/foozy/mercurial-wip -r 9550ea4f1d73
# EXP-Topic filemerge-followup
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

Patch

diff --git a/mercurial/help/merge-tools.txt b/mercurial/help/merge-tools.txt
--- a/mercurial/help/merge-tools.txt
+++ b/mercurial/help/merge-tools.txt
@@ -72,22 +72,29 @@  7. If the file to be merged is not binar
 
 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 columns indicates Mercurial behavior for
+internal/external merge tools at examining each rules.
+
+- "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 columns becomes "?/?"). It is false by default for backward
+compatibility.
 
 .. note::
 
diff --git a/tests/test-help.t b/tests/test-help.t
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -1918,20 +1918,26 @@  Test dynamic list of merge tools only sh
          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 columns indicates Mercurial behavior for internal/external
+      merge tools at examining each rules.
+  
+      - "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
+      columns becomes "?/?"). It is false by default for backward compatibility.
   
       Note:
          After selecting a merge program, Mercurial will by default attempt to