]> git.ipfire.org Git - thirdparty/git.git/commitdiff
format-patch: move cover letter summary generation
authorMirko Faina <mroik@delayed.space>
Fri, 6 Mar 2026 23:34:41 +0000 (00:34 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 7 Mar 2026 01:16:44 +0000 (17:16 -0800)
As of now format-patch allows generation of a template cover letter for
patch series through "--cover-letter".

Move shortlog summary code generation to its own function. This is done
in preparation to other patches where we enable the user to format the
commit list using thier own format string.

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

index 5c9a8ef3632906544a37a9bb66c4713dd774b722..0d12272031f0038b17fe8cdfa405fb6f77b80653 100644 (file)
@@ -1324,6 +1324,25 @@ static void get_notes_args(struct strvec *arg, struct rev_info *rev)
        }
 }
 
+static void generate_shortlog_cover_letter(struct shortlog *log,
+                                          struct rev_info *rev,
+                                          struct commit **list,
+                                          int nr)
+{
+       shortlog_init(log);
+       log->wrap_lines = 1;
+       log->wrap = MAIL_DEFAULT_WRAP;
+       log->in1 = 2;
+       log->in2 = 4;
+       log->file = rev->diffopt.file;
+       log->groups = SHORTLOG_GROUP_AUTHOR;
+       shortlog_finish_setup(log);
+       for (int i = 0; i < nr; i++)
+               shortlog_add_commit(log, list[i]);
+
+       shortlog_output(log);
+}
+
 static void make_cover_letter(struct rev_info *rev, int use_separate_file,
                              struct commit *origin,
                              int nr, struct commit **list,
@@ -1377,18 +1396,7 @@ static void make_cover_letter(struct rev_info *rev, int use_separate_file,
        free(pp.after_subject);
        strbuf_release(&sb);
 
-       shortlog_init(&log);
-       log.wrap_lines = 1;
-       log.wrap = MAIL_DEFAULT_WRAP;
-       log.in1 = 2;
-       log.in2 = 4;
-       log.file = rev->diffopt.file;
-       log.groups = SHORTLOG_GROUP_AUTHOR;
-       shortlog_finish_setup(&log);
-       for (i = 0; i < nr; i++)
-               shortlog_add_commit(&log, list[i]);
-
-       shortlog_output(&log);
+       generate_shortlog_cover_letter(&log, rev, list, nr);
 
        /* We can only do diffstat with a unique reference point */
        if (origin)