Mercurial > hg
changeset 21918:10abc3a5c6b2
filemerge: use 'basic' as the default of '[ui] mergemarkers' for safety
Before this patch, 'detailed' is used as the default of '[ui]
mergemarkers'. This embeds non-ASCII characters in tags, branches,
bookmarks, author and/or commit descriptions into merged files in the
encoding specified by '--encoding' global option, 'HGENCODING' or
other locale setting environment variables.
But, if files to be merged use another encoding, this behavior breaks
consistency of encoding in merged files.
For example, ISO-2022-JP or EUC-JP are sometimes used as the file
encoding for Japanese characters, because of historical and/or
environmental reasons, even though UTF-8 or Shift-JIS are ordinarily
used as the terminal encoding.
This can't be resolved automatically, because Mercurial doesn't aware
encoding of managed files.
This patch uses 'basic' as the default of '[ui] mergemarkers' to avoid
embedding encoding sensitive characters for safety.
This patch puts '[ui] mergemarkers = detailed' into default hgrc file
for tests, to reduce changes for tests in this patch.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sun, 06 Jul 2014 02:56:41 +0900 |
parents | ac3b3a2d976d |
children | c350cff58444 |
files | mercurial/filemerge.py mercurial/help/config.txt tests/run-tests.py tests/test-basic.t tests/test-commandserver.py.out |
diffstat | 5 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/filemerge.py Thu Jul 17 20:17:17 2014 -0400 +++ b/mercurial/filemerge.py Sun Jul 06 02:56:41 2014 +0900 @@ -376,7 +376,7 @@ ui.debug("my %s other %s ancestor %s\n" % (fcd, fco, fca)) - markerstyle = ui.config('ui', 'mergemarkers', 'detailed') + markerstyle = ui.config('ui', 'mergemarkers', 'basic') if markerstyle == 'basic': formattedlabels = _defaultconflictlabels else:
--- a/mercurial/help/config.txt Thu Jul 17 20:17:17 2014 -0400 +++ b/mercurial/help/config.txt Sun Jul 06 02:56:41 2014 +0900 @@ -1215,11 +1215,11 @@ For configuring merge tools see the ``[merge-tools]`` section. ``mergemarkers`` - Sets the merge conflict marker label styling. The default ``detailed`` + Sets the merge conflict marker label styling. The ``detailed`` style uses the ``mergemarkertemplate`` setting to style the labels. The ``basic`` style just uses 'local' and 'other' as the marker label. One of ``basic`` or ``detailed``. - Default is ``detailed``. + Default is ``basic``. ``mergemarkertemplate`` The template used to print the commit description next to each conflict @@ -1227,6 +1227,13 @@ format. Defaults to showing the hash, tags, branches, bookmarks, author, and the first line of the commit description. + You have to pay attention to encodings of managed files, if you + use non-ASCII characters in tags, branches, bookmarks, author + and/or commit descriptions. At template expansion, non-ASCII + characters use the encoding specified by ``--encoding`` global + option, ``HGENCODING`` or other locale setting environment + variables. The difference of encoding between merged file and + conflict markers causes serious problem. ``portablefilenames`` Check for portable filenames. Can be ``warn``, ``ignore`` or ``abort``.
--- a/tests/run-tests.py Thu Jul 17 20:17:17 2014 -0400 +++ b/tests/run-tests.py Sun Jul 06 02:56:41 2014 +0900 @@ -648,6 +648,7 @@ hgrc.write('[ui]\n') hgrc.write('slash = True\n') hgrc.write('interactive = False\n') + hgrc.write('mergemarkers = detailed\n') hgrc.write('[defaults]\n') hgrc.write('backout = -d "0 0"\n') hgrc.write('commit = -d "0 0"\n')
--- a/tests/test-basic.t Thu Jul 17 20:17:17 2014 -0400 +++ b/tests/test-basic.t Sun Jul 06 02:56:41 2014 +0900 @@ -7,6 +7,7 @@ defaults.tag=-d "0 0" ui.slash=True ui.interactive=False + ui.mergemarkers=detailed $ hg init t $ cd t
--- a/tests/test-commandserver.py.out Thu Jul 17 20:17:17 2014 -0400 +++ b/tests/test-commandserver.py.out Sun Jul 06 02:56:41 2014 +0900 @@ -80,6 +80,7 @@ defaults.tag=-d "0 0" ui.slash=True ui.interactive=False +ui.mergemarkers=detailed ui.foo=bar ui.nontty=true runcommand init foo @@ -90,6 +91,7 @@ defaults.tag=-d "0 0" ui.slash=True ui.interactive=False +ui.mergemarkers=detailed ui.nontty=true testing hookoutput: