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 <j...@joshtriplett.org>
---
 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 <commit...@example.com>
+
+       From: A U Thor <aut...@example.com>
+
+       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 <aut...@example.com>
+
+       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 <aut...@example.com>" 
>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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to