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 ***".