Nicolas Morey-Chaisemartin <[email protected]> writes:

> -     const char *body = "*** SUBJECT HERE ***\n\n*** BLURB HERE ***\n";
> -     const char *msg;
> +     const char *body = "*** SUBJECT HERE ***\n\n*** BLURB HERE ***\n\n";

Hmmmm.

> @@ -1021,17 +1021,21 @@ static void make_cover_letter(struct rev_info *rev, 
> int use_stdout,
>       if (!branch_name)
>               branch_name = find_branch_name(rev);
>  
> -     msg = body;
>       pp.fmt = CMIT_FMT_EMAIL;
>       pp.date_mode.type = DATE_RFC2822;
>       pp.rev = rev;
>       pp.print_email_subject = 1;
> -     pp_user_info(&pp, NULL, &sb, committer, encoding);
> -     pp_title_line(&pp, &msg, &sb, encoding, need_8bit_cte);
> -     pp_remainder(&pp, &msg, &sb, 0);
> -     add_branch_description(&sb, branch_name);
> -     fprintf(rev->diffopt.file, "%s\n", sb.buf);
>  
> +     if (!cover_at_tip_commit) {
> +             pp_user_info(&pp, NULL, &sb, committer, encoding);
> +             pp_title_line(&pp, &body, &sb, encoding, need_8bit_cte);
> +             pp_remainder(&pp, &body, &sb, 0);
> +     } else {
> +             pretty_print_commit(&pp, cover_at_tip_commit, &sb);
> +     }
> +     add_branch_description(&sb, branch_name);
> +     fprintf(rev->diffopt.file, "%s", sb.buf);
> +     fprintf(rev->diffopt.file, "---\n", sb.buf);
>       strbuf_release(&sb);

I would have expected that this feature would not change anything
other than replacing the constant string *body we unconditionally
print with the log message of the empty commit at the tip, so from
that expectation, I was hoping that a patch looked nothing more than
this:

 builtin/log.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/builtin/log.c b/builtin/log.c
index 6c1fa896ad..0af19d5b36 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -986,6 +986,7 @@ static void make_cover_letter(struct rev_info *rev, int 
use_stdout,
                              struct commit *origin,
                              int nr, struct commit **list,
                              const char *branch_name,
+                             struct commit *cover,
                              int quiet)
 {
        const char *committer;
@@ -1021,7 +1022,10 @@ static void make_cover_letter(struct rev_info *rev, int 
use_stdout,
        if (!branch_name)
                branch_name = find_branch_name(rev);
 
-       msg = body;
+       if (cover)
+               msg = get_cover_from_commit(cover);
+       else
+               msg = body;
        pp.fmt = CMIT_FMT_EMAIL;
        pp.date_mode.type = DATE_RFC2822;
        pp.rev = rev;


plus a newly written function get_cover_from_commit().  Why does
this patch need to change a lot more than that, I have to wonder.

This is totally unrelated, but I wonder if it makes sense to do
something similar for branch.description, too.  If the user has a
meaningful description prepared with "git branch --edit-desc", it is
somewhat insulting to the user to still add "*** BLURB HERE ***".

Reply via email to