comparison tests/test-help.t @ 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 5199c5b6fd29
children cded904f7acc
comparison
equal deleted inserted replaced
39120:d7007b807fa2 39121:7c6044634957
1890 must be executable by the shell. 1890 must be executable by the shell.
1891 2. If the "HGMERGE" environment variable is present, its value is used and 1891 2. If the "HGMERGE" environment variable is present, its value is used and
1892 must be executable by the shell. 1892 must be executable by the shell.
1893 3. If the filename of the file to be merged matches any of the patterns in 1893 3. If the filename of the file to be merged matches any of the patterns in
1894 the merge-patterns configuration section, the first usable merge tool 1894 the merge-patterns configuration section, the first usable merge tool
1895 corresponding to a matching pattern is used. Here, binary capabilities 1895 corresponding to a matching pattern is used.
1896 of the merge tool are not considered.
1897 4. If ui.merge is set it will be considered next. If the value is not the 1896 4. If ui.merge is set it will be considered next. If the value is not the
1898 name of a configured tool, the specified value is used and must be 1897 name of a configured tool, the specified value is used and must be
1899 executable by the shell. Otherwise the named tool is used if it is 1898 executable by the shell. Otherwise the named tool is used if it is
1900 usable. 1899 usable.
1901 5. If any usable merge tools are present in the merge-tools configuration 1900 5. If any usable merge tools are present in the merge-tools configuration
1903 6. If a program named "hgmerge" can be found on the system, it is used - 1902 6. If a program named "hgmerge" can be found on the system, it is used -
1904 but it will by default not be used for symlinks and binary files. 1903 but it will by default not be used for symlinks and binary files.
1905 7. If the file to be merged is not binary and is not a symlink, then 1904 7. If the file to be merged is not binary and is not a symlink, then
1906 internal ":merge" is used. 1905 internal ":merge" is used.
1907 8. Otherwise, ":prompt" is used. 1906 8. Otherwise, ":prompt" is used.
1907
1908 For historical reason, Mercurial assumes capabilities of internal merge
1909 tools as below while examining rules above, regardless of actual
1910 capabilities of them.
1911
1912 step specified via binary symlink
1913 ----------------------------------
1914 1. --tool o o
1915 2. HGMERGE o o
1916 3. merge-patterns o x
1917 4. ui.merge x x
1908 1918
1909 Note: 1919 Note:
1910 After selecting a merge program, Mercurial will by default attempt to 1920 After selecting a merge program, Mercurial will by default attempt to
1911 merge the files using a simple merge algorithm first. Only if it 1921 merge the files using a simple merge algorithm first. Only if it
1912 doesn't succeed because of conflicting changes will Mercurial actually 1922 doesn't succeed because of conflicting changes will Mercurial actually