Thread (22 messages) 22 messages, 4 authors, 2025-07-16

Re: [GSOC PATCH v3] commit: avoid scanning trailing comments when 'core.commentChar' is "auto"

From: Ayush Chandekar <hidden>
Date: 2025-07-02 23:46:40

Hi Phillip,

On Wed, Jul 2, 2025 at 1:02 AM Phillip Wood [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Hi Ayush

On 01/07/2025 19:33, Ayush Chandekar wrote:
quoted
On Tue, Jul 1, 2025 at 6:47 PM Phillip Wood [off-list ref] wrote:
quoted
The changes here look good but I think we want to update the config
parsing as well so that comment_line_str is reset to '#' when
core.commentString=auto. We probably want to do that in its own commit.
maybe something like this?
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -912,8 +912,10 @@ static int prepare_to_commit(const char
*index_file, const char *prefix,
         if (fwrite(sb.buf, 1, sb.len, s->fp) < sb.len)
                 die_errno(_("could not write commit template"));

-       if (auto_comment_line_char)
+       if (auto_comment_line_char){
+               comment_line_str = "#";
                 adjust_comment_line_char(&sb);
+       }
         strbuf_release(&sb);

or we can do it inside the `adjust_comment_line()` function.
We need to do it when we parse the config so that
append_conflicts_comment() uses '#' as the comment char. See the
(whitespace damaged) diff below

Thanks

Phillip
diff --git a/config.c b/config.c
index eb60c293ab3..bb75bdc65d3 100644
--- a/config.c
+++ b/config.c
@@ -1537,9 +1537,11 @@ static int git_default_core_config(const char
*var, const char *value,
              !strcmp(var, "core.commentstring")) {
                  if (!value)
                          return config_error_nonbool(var);
-                else if (!strcasecmp(value, "auto"))
+                else if (!strcasecmp(value, "auto")) {
                          auto_comment_line_char = 1;
-                else if (value[0]) {
+                        FREE_AND_NULL(comment_line_str_to_free);
+                        comment_line_str = "#";
+                } else if (value[0]) {
                          if (strchr(value, '\n'))
                                  return error(_("%s cannot contain
newline"), var);
                          comment_line_str = value;
Thanks, I understood it.

What if we simply return the function `adjust_comment_line_char()` if
we get a non-zero value from `ignored_log_message_bytes()`, i.e we
won't scan the commit message in case conflict message exists, and we
let the old code exist as it is?

+       if(ignored_log_message_bytes(sb->buf, sb->len))
+               return;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help