Mercurial > hg
changeset 21864:755bf1bbe0a9
filemerge: use only the first line of the generated conflict marker for safety
Before this patch, with careless configuration (missing '|firstline'
filtering for '{desc}' keyword, for example), '[ui]
mergemarkertemplate' can make conflict markers multiple lines.
For ordinary users, advantage of allowing '[ui] mergemarkertemplate'
to generate multiple lines for customizing seems to be less than
advantage of disallowing it for safety.
This patch uses only the first line of the conflict marker generated
from '[ui] mergemarkertemplate' configuration for safety.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sun, 06 Jul 2014 02:56:41 +0900 |
parents | f9c91c638378 |
children | 78e56e70c70a |
files | mercurial/filemerge.py tests/test-conflict.t |
diffstat | 2 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/filemerge.py Sun Jul 06 02:56:41 2014 +0900 +++ b/mercurial/filemerge.py Sun Jul 06 02:56:41 2014 +0900 @@ -287,6 +287,9 @@ label = ('%s:' % label).ljust(pad + 1) mark = '%s %s' % (label, templater.stringify(templateresult)) + if mark: + mark = mark.splitlines()[0] # split for safety + # The <<< marks add 8 to the length, and '...' adds three, so max # length of the actual marker is 69. maxlength = 80 - 8 - 3
--- a/tests/test-conflict.t Sun Jul 06 02:56:41 2014 +0900 +++ b/tests/test-conflict.t Sun Jul 06 02:56:41 2014 +0900 @@ -52,6 +52,26 @@ something >>>>>>> other: test 1 +Verify line splitting of custom conflict marker which causes multiple lines + + $ hg up -q --clean . + $ cat >> .hg/hgrc <<EOF + > [ui] + > mergemarkertemplate={author} {rev}\nfoo\nbar\nbaz + > EOF + + $ hg -q merge 1 + warning: conflicts during merge. + merging a incomplete! (edit conflicts, then use 'hg resolve --mark') + [1] + + $ cat a + <<<<<<< local: test 2 + something else + ======= + something + >>>>>>> other: test 1 + Verify basic conflict markers $ hg up -q --clean .