As the need to use the "--force-in-body-from" option primarily is tied to which mailing list the mails go to (and get their From: address mangled), it is likely that a user who needs to use this option once to interact with their upstream project needs to use it for all patches they send out. Add a configuration variable, suitable for setting in the local configuration file per repository, for this. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- Documentation/config/format.txt | 4 ++++ Documentation/git-format-patch.txt | 2 ++ builtin/log.c | 4 ++++ t/t4014-format-patch.sh | 24 ++++++++++++++++++++++++ 4 files changed, 34 insertions(+) diff --git a/Documentation/config/format.txt b/Documentation/config/format.txt index fdbc06a4d2..c7303d8d9f 100644 --- a/Documentation/config/format.txt +++ b/Documentation/config/format.txt @@ -15,6 +15,10 @@ format.from:: different. If set to a non-boolean value, format-patch uses that value instead of your committer identity. Defaults to false. +format.forceInBodyFrom:: + Provides the default value for the `--[no-]force-in-body-from` + option to format-patch. Defaults to false. + format.numbered:: A boolean which can enable or disable sequence numbers in patch subjects. It defaults to "auto" which enables it only if there diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt index 7c7f244e57..dfcc7da4c2 100644 --- a/Documentation/git-format-patch.txt +++ b/Documentation/git-format-patch.txt @@ -283,6 +283,8 @@ feeding the result to `git send-email`. the in-body "From:" is added even when the sender and the author have the same name and address, which may help if the mailing list software mangles the sender's identity. + Defaults to the value of the `format.forceInBodyFrom` + configuration variable. --add-header=<header>:: Add an arbitrary header to the email headers. This is in addition diff --git a/builtin/log.c b/builtin/log.c index 78ccd37bd9..776bc9afdb 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -1007,6 +1007,10 @@ static int git_format_config(const char *var, const char *value, void *cb) from = NULL; return 0; } + if (!strcmp(var, "format.forceinbodyfrom")) { + force_in_body_from = git_config_bool(var, value); + return 0; + } if (!strcmp(var, "format.notes")) { int b = git_parse_maybe_bool(value); if (b < 0) diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh index 347f7f7f35..ad5c029279 100755 --- a/t/t4014-format-patch.sh +++ b/t/t4014-format-patch.sh @@ -1413,6 +1413,30 @@ test_expect_success 'with --force-in-body-from, redundant in-body from is kept' test_cmp expect patch.head ' +test_expect_success 'format.forceInBodyFrom, equivalent to --force-in-body-from' ' + git -c format.forceInBodyFrom=yes format-patch \ + -1 --stdout --from="A U Thor <author@xxxxxxxxxxx>" >patch && + cat >expect <<-\EOF && + From: A U Thor <author@xxxxxxxxxxx> + + From: A U Thor <author@xxxxxxxxxxx> + + EOF + sed -ne "/^From:/p; /^$/p; /^---$/q" patch >patch.head && + test_cmp expect patch.head +' + +test_expect_success 'format.forceInBodyFrom, equivalent to --force-in-body-from' ' + git -c format.forceInBodyFrom=yes format-patch --no-force-in-body-from \ + -1 --stdout --from="A U Thor <author@xxxxxxxxxxx>" >patch && + cat >expect <<-\EOF && + From: A U Thor <author@xxxxxxxxxxx> + + 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-621-gd3a800faf0