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
--- 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