Re: [PATCH 7/7] [doc] ignore conflict markers in gitmergeconflicts.adoc
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 7, 2026, 21:21 UTC
- Message-ID
- <xmqqse2h5hql.fsf@gitster.g>
- In-Reply-To
- <4505fdc9a6dec37296952107c90947e43f39bae4.1790261062.git.gitgitgadget@gmail.com>
"Julia Evans via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 20 quoted lines
> Subject: Re: [PATCH 7/7] [doc] ignore conflict markers in gitmergeconflicts.adoc > From: Julia Evans <julia@jvns.ca> > > Signed-off-by: Julia Evans <julia@jvns.ca> > --- > .gitattributes | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/.gitattributes b/.gitattributes > index 26490ad60a..0a0fc950b1 100644 > --- a/.gitattributes > +++ b/.gitattributes > @@ -14,6 +14,7 @@ CODE_OF_CONDUCT.md -whitespace > /t/oid-info/* text eol=lf > /Documentation/git-merge.adoc conflict-marker-size=32 > /Documentation/git-merge-file.adoc conflict-marker-size=32 > +/Documentation/gitmergeconflicts.adoc conflict-marker-size=32 > /Documentation/gitk.adoc conflict-marker-size=32 > /Documentation/user-manual.adoc conflict-marker-size=32 > /t/t????-*.sh conflict-marker-size=32
The title of this patch seems to show a fundamental misunderstanding of what these custom conflict marker settings mean. I believe the plan is to squash this into the step that introduces the new file; when that happens, the patch title will disappear and we will not have to worry about it, but regardless.
Setting a custom 'conflict-marker-size' is not about ignoring anything. It ensures that payload lines that happen to look like conflict markers are not mistaken for them. Machinery like rerere parses conflicted files, and you do not want it to mistake a run of seven '<' characters at the beginning of a line you deliberately wrote as the start of a conflict block. You prevent such mistakes by specifying that the conflict delimiter used during conflicts will be N (!= 7) characters long, instead of the regular seven.
By the way, some of the points above might be worth teaching in the material covering merge conflicts (i.e., this series). I do not think many people write manuals on Git with examples of what a conflict block looks like ;-), but a run of seven '<', '=', '|', or '>' characters may appear in real payloads that users need to use, in contexts completely unrelated to ours.
Setting 'conflict-marker-size' to a length that their payload is unlikely to use is a useful technique to be aware of.
Thanks.