]> git.ipfire.org Git - thirdparty/git.git/commitdiff
format-patch: removing unconditional wrapping
authorMirko Faina <mroik@delayed.space>
Fri, 27 Mar 2026 19:48:10 +0000 (20:48 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Mar 2026 20:10:12 +0000 (13:10 -0700)
Using format-patch with --commit-list-format different than shortlog,
causes the commit entry lines to wrap if they get longer than
MAIL_DEFAULT_WRAP (72 characters).

While this might be sensible for many when sending changes through
email, it forces this decision of wrapping on the user, reducing the
control granularity of --commit-list-format.

Teach generate_commit_list_cover() to respect commit entry line lengths
and place this wrapping rule on the "modern" preset format instead.

Signed-off-by: Mirko Faina <mroik@delayed.space>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-format-patch.adoc
builtin/log.c

index cbbb292cb50313abebab5a9ab450b42bdcf4d715..5662382450289a837ae9517d4be0925896cb23ed 100644 (file)
@@ -327,7 +327,7 @@ feeding the result to `git send-email`.
        Specify the format in which to generate the commit list of the patch
        series. The accepted values for format-spec are `shortlog`, `modern` or
        a format-string prefixed with `log:`. E.g. `log: %s (%an)`.
-       `modern` is the same as `log:[%(count)/%(total)] %s`.
+       `modern` is the same as `log:%w(72)[%(count)/%(total)] %s`.
        The `log:` prefix can be omitted if the format-string has a `%` in it
        (expecting that it is part of `%<placeholder>`).
        Defaults to the `format.commitListFormat` configuration variable, if
index ad7b7215fe5920d8edcf87d9e15faf5ef4b456b1..8c0939dd42ada28bc4b7bd60aa33e6806dfbb067 100644 (file)
@@ -1365,7 +1365,6 @@ static void generate_commit_list_cover(FILE *cover_file, const char *format,
                                       struct commit **list, int n)
 {
        struct strbuf commit_line = STRBUF_INIT;
-       struct strbuf wrapped_line = STRBUF_INIT;
        struct pretty_print_context ctx = {0};
        struct rev_info rev = REV_INFO_INIT;
 
@@ -1375,16 +1374,12 @@ static void generate_commit_list_cover(FILE *cover_file, const char *format,
                rev.nr = i;
                repo_format_commit_message(the_repository, list[n - i], format,
                                &commit_line, &ctx);
-               strbuf_add_wrapped_text(&wrapped_line, commit_line.buf, 0, 0,
-                                       MAIL_DEFAULT_WRAP);
-               fprintf(cover_file, "%s\n", wrapped_line.buf);
+               fprintf(cover_file, "%s\n", commit_line.buf);
                strbuf_reset(&commit_line);
-               strbuf_reset(&wrapped_line);
        }
        fprintf(cover_file, "\n");
 
        strbuf_release(&commit_line);
-       strbuf_release(&wrapped_line);
 }
 
 static void make_cover_letter(struct rev_info *rev, int use_separate_file,
@@ -1446,7 +1441,7 @@ static void make_cover_letter(struct rev_info *rev, int use_separate_file,
        else if (!strcmp(format, "shortlog"))
                generate_shortlog_cover_letter(&log, rev, list, nr);
        else if (!strcmp(format, "modern"))
-               generate_commit_list_cover(rev->diffopt.file, "[%(count)/%(total)] %s",
+               generate_commit_list_cover(rev->diffopt.file, "%w(72)[%(count)/%(total)] %s",
                                           list, nr);
        else if (strchr(format, '%'))
                generate_commit_list_cover(rev->diffopt.file, format, list, nr);