This avoids spoofing mails when formatting commits not written by the user. Add tests for the new default, and fix tests whose expected output depended on the old default. Signed-off-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> --- Documentation/config.txt | 2 +- builtin/log.c | 1 + t/t4014-format-patch.sh | 28 +++++++++++++++++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index bd34774..2310877 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -1261,7 +1261,7 @@ format.from:: `--from`, using your committer identity in the "From:" field of patch mails and including a "From:" field in the body of the patch mail if different. If set to a non-boolean value, format-patch uses that - value instead of your committer identity. Defaults to false. + value instead of your committer identity. Defaults to true. format.numbered:: A boolean which can enable or disable sequence numbers in patch diff --git a/builtin/log.c b/builtin/log.c index 1f116be..53b2f62 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -1472,6 +1472,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) extra_hdr.strdup_strings = 1; extra_to.strdup_strings = 1; extra_cc.strdup_strings = 1; + from = xstrdup(git_committer_info(IDENT_NO_DATE)); init_log_defaults(); git_config(git_format_config, NULL); init_revisions(&rev, prefix); diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh index b0579dd..fa35cbe 100755 --- a/t/t4014-format-patch.sh +++ b/t/t4014-format-patch.sh @@ -652,7 +652,7 @@ EOF test_expect_success 'format-patch -p suppresses stat' ' - git format-patch -p -2 && + git format-patch --no-from -p -2 && sed -e "1,/^\$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output && test_cmp expect output @@ -973,7 +973,7 @@ check_author() { echo content >>file && git add file && GIT_AUTHOR_NAME=$1 git commit -m author-check && - git format-patch --stdout -1 >patch && + git format-patch --no-from --stdout -1 >patch && sed -n "/^From: /p; /^ /p; /^$/q" <patch >actual && test_cmp expect actual } @@ -1089,6 +1089,18 @@ test_expect_success '--from=ident replaces author' ' test_cmp expect patch.head ' +test_expect_success 'Default uses committer ident' ' + git format-patch -1 --stdout >patch && + cat >expect <<-\EOF && + From: C O Mitter <committer@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 '--from uses committer ident' ' git format-patch -1 --stdout --from >patch && cat >expect <<-\EOF && @@ -1101,6 +1113,16 @@ test_expect_success '--from uses committer ident' ' test_cmp expect patch.head ' +test_expect_success '--no-from suppresses default --from' ' + git format-patch -1 --stdout --no-from >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 '--from omits redundant in-body header' ' git format-patch -1 --stdout --from="A U Thor <author@xxxxxxxxxxx>" >patch && cat >expect <<-\EOF && @@ -1129,7 +1151,7 @@ test_expect_success 'in-body headers trigger content encoding' ' append_signoff() { C=$(git commit-tree HEAD^^{tree} -p HEAD) && - git format-patch --stdout --signoff $C^..$C >append_signoff.patch && + git format-patch --no-from --stdout --signoff $C^..$C >append_signoff.patch && sed -n -e "1,/^---$/p" append_signoff.patch | egrep -n "^Subject|Sign|^$" } -- git-series 0.8.7 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html