]> git.ipfire.org Git - thirdparty/git.git/commit
commit: avoid scanning trailing comments when 'core.commentChar' is "auto"
authorAyush Chandekar <ayu.chandekar@gmail.com>
Wed, 16 Jul 2025 11:43:28 +0000 (17:13 +0530)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Jul 2025 15:25:17 +0000 (08:25 -0700)
commite69bbfa2947ee733a2b76f1dc28ceaf415368f2a
treedbeb020b90a761388cebb55609fd3f081e32edf5
parent16bd9f20a403117f2e0d9bcda6c6e621d3763e77
commit: avoid scanning trailing comments when 'core.commentChar' is "auto"

When core.commentChar is set to "auto", Git selects a comment character
by scanning the commit message contents and avoiding any character
already present in the message.

If the message still contains old conflict comments (starting with a
comment character), Git assumes that character is in use and chooses a
different one. As a result, those existing comment lines are no longer
recognized as comments and end up being included in the final commit
message.

To avoid this, skip scanning the trailing comment block when selecting
the comment character. This allows Git to safely reuse the original
character when appropriate, keeping the commit message clean and free of
leftover conflict information.

Background:

The "auto" value for core.commentchar was introduced in the commit
84c9dc2c5a (commit: allow core.commentChar=auto for character auto
selection, 2014-05-17) but did not exhibit this issue at that time.

The bug was introduced in commit a6c2654f83 (rebase -m: fix --signoff
with conflicts, 2024-04-18) where Git started writing conflict comments
to the file at 'rebase_path_message()'.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
Signed-off-by: Ayush Chandekar <ayu.chandekar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c
t/t3418-rebase-continue.sh