Re: [GSOC PATCH v2] commit: avoid scanning trailing comments when 'core.commentChar' is "auto"
- From
Ayush Chandekar <ayu.chandekar@gmail.com>
- Date
- Jun 28, 2025, 10:37 UTC
- Message-ID
- <CAE7as+ZBOJ_4LvHQua9bOw7+Y8cMpdo-sf8hThSkFC4rWCEt9g@mail.gmail.com>
- In-Reply-To
- <xmqqms9t8cfd.fsf@gitster.g>
On Fri, Jun 27, 2025 at 8:22 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 29 quoted lines
> > Phillip Wood <phillip.wood123@gmail.com> writes: > > >> + size_t cutoff; > >> + > >> + /* Ignore comment chars in trailing comments (e.g., Conflicts:) */ > >> + cutoff = sb->len - ignored_log_message_bytes(sb->buf, sb->len); > > > > This finds the "Conflicts:" line. I was surprised to see that the > > string it looks for is hard coded and not translated, however the > > sequencer (also surprisingly) does not translate that message either > > so it should work. > > There is a funny chicken-and-egg problem, though. It limits the > search for "Conflicts" by using wt_status_locate_end() based on the > current value of comment_line_str. When core.commentstring is set > to "auto", the code that reads the configuration does not touch the > comment_line_str variable, which is initialized to '#'. So > > [core] > commentstring = '%' > commentstring = auto > > would have '%' in comment_line_str upon entering this codepath, let > wt_status_locate_end() use '%' as the comment string to find the end > of the log message, and then looks for "Conflicts:" in the result. > > Which may or may not be what you want. >
This is also being used to append signoff, just before the `adjust_comment_line_char()` function. Another thing that could be done is to return the function (adjust_comment_line_char()) when we find a "Conflicts:" line. Because I don't think there's sense in adjusting the comment character when the "Conflicts:" line already has a comment character. But, I would like to have some views on this.
Thanks.