From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH 2/2] format-patch: allow forcing the use of in-body From: header
Date: Fri, 26 Aug 2022 14:32:03 -0700 [thread overview]
Message-ID: <20220826213203.3258022-3-gitster@pobox.com> (raw)
In-Reply-To: <20220826213203.3258022-1-gitster@pobox.com>
Users may be authoring and committing their commits under the same
e-mail address they use to send their patches from, in which case
they shouldn't need to use the in-body From: line in their outgoing
e-mails. At the receiving end, "git am" will use the address on the
"From:" header of the incoming e-mail and all should be well.
Some mailing lists, however, mangle the From: address from what the
original sender had; in such an unfortunate situation, the user may
want to add the in-body "From:" header even for their own patch.
"git format-patch --[no-]force-inbody-from" was invented for such
users.
Note. This is an uncooked early draft. Things to think about
include (but not limited to, of course):
* Should this rather be --use-inbody-from=yes,no,auto tristate,
that defaults to "auto", which is the current behaviour i.e.
"when --from is given, add it only when it does not match the
payload". "yes" would mean "always emit the --from address as
in-body From:" and "no" would mean ... what? "Ignore --from"?
Then why is the user giving --from in the first place?
* Should it be "inbody" or "in-body"?
* Should it have a corresponding configuration variable?
* Should this patch be scrapped and the feature should be done
inside "git send-email" instead?
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin/log.c | 2 ++
pretty.c | 2 ++
revision.h | 1 +
t/t4014-format-patch.sh | 13 +++++++++++++
4 files changed, 18 insertions(+)
diff --git a/builtin/log.c b/builtin/log.c
index 9b937d59b8..83b2d01b49 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -1897,6 +1897,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
N_("show changes against <refspec> in cover letter or single patch")),
OPT_INTEGER(0, "creation-factor", &creation_factor,
N_("percentage by which creation is weighted")),
+ OPT_BOOL(0, "force-inbody-from", &rev.force_inbody_from,
+ N_("Use in-body From: even for your own commit")),
OPT_END()
};
diff --git a/pretty.c b/pretty.c
index 51e3fa5736..e266208c0b 100644
--- a/pretty.c
+++ b/pretty.c
@@ -483,6 +483,8 @@ static int use_inbody_from(const struct pretty_print_context *pp, const struct i
return 0;
if (ident_cmp(pp->from_ident, ident))
return 1;
+ if (pp->rev && pp->rev->force_inbody_from)
+ return 1;
return 0;
}
diff --git a/revision.h b/revision.h
index bb91e7ed91..a2d3813a21 100644
--- a/revision.h
+++ b/revision.h
@@ -208,6 +208,7 @@ struct rev_info {
/* Format info */
int show_notes;
+ unsigned int force_inbody_from;
unsigned int shown_one:1,
shown_dashes:1,
show_merge:1,
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index fbec8ad2ef..a4ecd433e2 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -1400,6 +1400,19 @@ test_expect_success '--from omits redundant in-body header' '
test_cmp expect patch.head
'
+test_expect_success 'with --force-inbody-from, --from keeps redundant in-body header' '
+ git format-patch --force-inbody-from \
+ -1 --stdout --from="A U Thor <author@example.com>" >patch &&
+ cat >expect <<-\EOF &&
+ From: A U Thor <author@example.com>
+
+ From: A U Thor <author@example.com>
+
+ EOF
+ sed -ne "/^From:/p; /^$/p; /^---$/q" patch >patch.head &&
+ test_cmp expect patch.head
+'
+
test_expect_success 'in-body headers trigger content encoding' '
test_env GIT_AUTHOR_NAME="éxötìc" test_commit exotic &&
test_when_finished "git reset --hard HEAD^" &&
--
2.37.2-587-g47adba97a9
next prev parent reply other threads:[~2022-08-26 21:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-26 21:32 [PATCH 0/2] format-patch --force-inbody-from Junio C Hamano
2022-08-26 21:32 ` [PATCH 1/2] pretty: separate out the logic to decide the use of in-body from Junio C Hamano
2022-08-29 11:32 ` Johannes Schindelin
2022-08-29 17:29 ` Junio C Hamano
2022-08-26 21:32 ` Junio C Hamano [this message]
2022-08-29 11:48 ` [PATCH 2/2] format-patch: allow forcing the use of in-body From: header Johannes Schindelin
2022-08-29 17:41 ` Junio C Hamano
2022-08-29 21:38 ` [PATCH v2 0/3] format-patch --force-in-body-from Junio C Hamano
2022-08-29 21:38 ` [PATCH v2 1/3] pretty: separate out the logic to decide the use of in-body from Junio C Hamano
2022-08-29 21:38 ` [PATCH v2 2/3] format-patch: allow forcing the use of in-body From: header Junio C Hamano
2022-08-30 20:07 ` Jeff King
2022-08-30 20:14 ` Jeff King
2022-08-29 21:38 ` [PATCH v2 3/3] format-patch: learn format.forceInBodyFrom configuration variable Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220826213203.3258022-3-gitster@pobox.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.