]> Kevux Git Server - rit/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 5c9a8ef..0d12272 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)