aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMirko Faina <mroik@delayed.space>2026-03-27 20:48:10 +0100
committerJunio C Hamano <gitster@pobox.com>2026-03-27 13:10:12 -0700
commit0284046ad01e22b5e794a864a96925791f75353c (patch)
treed2ea26c6cec91a63bbd39f0db6379aa05e61f8b4
parentacee42d3e5a2855cfa3b33baf3728f34fe6fb33f (diff)
downloadgit-0284046ad01e22b5e794a864a96925791f75353c.tar.xz
format-patch: removing unconditional wrapping
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>
-rw-r--r--Documentation/git-format-patch.adoc2
-rw-r--r--builtin/log.c9
2 files changed, 3 insertions, 8 deletions
diff --git a/Documentation/git-format-patch.adoc b/Documentation/git-format-patch.adoc
index cbbb292cb5..5662382450 100644
--- a/Documentation/git-format-patch.adoc
+++ b/Documentation/git-format-patch.adoc
@@ -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
diff --git a/builtin/log.c b/builtin/log.c
index ad7b7215fe..8c0939dd42 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -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);