Merge branch 'jc/no-git-config-in-clone'
[gitweb.git] / t / t4014-format-patch.sh
index ad9f69e6074311cc3828896bd8409822344d6f62..7fa3647514b616b1a40b233b23123a00c4d3ff6c 100755 (executable)
@@ -155,7 +155,7 @@ test_expect_failure 'additional command line cc (rfc822)' '
        git config --replace-all format.headers "Cc: R E Cipient <rcipient@example.com>" &&
        git format-patch --cc="S. E. Cipient <scipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch5 &&
        grep "^Cc: R E Cipient <rcipient@example.com>,\$" patch5 &&
-       grep "^ *"S. E. Cipient" <scipient@example.com>\$" patch5
+       grep "^ *\"S. E. Cipient\" <scipient@example.com>\$" patch5
 '
 
 test_expect_success 'command line headers' '
@@ -183,7 +183,7 @@ test_expect_success 'command line To: header (ascii)' '
 test_expect_failure 'command line To: header (rfc822)' '
 
        git format-patch --to="R. E. Cipient <rcipient@example.com>" --stdout master..side | sed -e "/^\$/q" >patch8 &&
-       grep "^To: "R. E. Cipient" <rcipient@example.com>\$" patch8
+       grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch8
 '
 
 test_expect_failure 'command line To: header (rfc2047)' '
@@ -203,7 +203,7 @@ test_expect_failure 'configuration To: header (rfc822)' '
 
        git config format.to "R. E. Cipient <rcipient@example.com>" &&
        git format-patch --stdout master..side | sed -e "/^\$/q" >patch9 &&
-       grep "^To: "R. E. Cipient" <rcipient@example.com>\$" patch9
+       grep "^To: \"R. E. Cipient\" <rcipient@example.com>\$" patch9
 '
 
 test_expect_failure 'configuration To: header (rfc2047)' '
@@ -271,6 +271,22 @@ test_expect_success 'multiple files' '
        ls patches/0001-Side-changes-1.patch patches/0002-Side-changes-2.patch patches/0003-Side-changes-3-with-n-backslash-n-in-it.patch
 '
 
+test_expect_success 'reroll count' '
+       rm -fr patches &&
+       git format-patch -o patches --cover-letter --reroll-count 4 master..side >list &&
+       ! grep -v "^patches/v4-000[0-3]-" list &&
+       sed -n -e "/^Subject: /p" $(cat list) >subjects &&
+       ! grep -v "^Subject: \[PATCH v4 [0-3]/3\] " subjects
+'
+
+test_expect_success 'reroll count (-v)' '
+       rm -fr patches &&
+       git format-patch -o patches --cover-letter -v4 master..side >list &&
+       ! grep -v "^patches/v4-000[0-3]-" list &&
+       sed -n -e "/^Subject: /p" $(cat list) >subjects &&
+       ! grep -v "^Subject: \[PATCH v4 [0-3]/3\] " subjects
+'
+
 check_threading () {
        expect="$1" &&
        shift &&
@@ -650,8 +666,19 @@ test_expect_success 'format-patch --in-reply-to' '
 '
 
 test_expect_success 'format-patch --signoff' '
-       git format-patch -1 --signoff --stdout |
-       grep "^Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
+       git format-patch -1 --signoff --stdout >out &&
+       grep "^Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" out
+'
+
+test_expect_success 'format-patch --notes --signoff' '
+       git notes --ref test add -m "test message" HEAD &&
+       git format-patch -1 --signoff --stdout --notes=test >out &&
+       # Three dashes must come after S-o-b
+       ! sed "/^Signed-off-by: /q" out | grep "test message" &&
+       sed "1,/^Signed-off-by: /d" out | grep "test message" &&
+       # Notes message must come after three dashes
+       ! sed "/^---$/q" out | grep "test message" &&
+       sed "1,/^---$/d" out | grep "test message"
 '
 
 echo "fatal: --name-only does not make sense" > expect.name-only
@@ -952,4 +979,46 @@ test_expect_success 'format patch ignores color.ui' '
        test_cmp expect actual
 '
 
+test_expect_success 'cover letter using branch description (1)' '
+       git checkout rebuild-1 &&
+       test_config branch.rebuild-1.description hello &&
+       git format-patch --stdout --cover-letter master >actual &&
+       grep hello actual >/dev/null
+'
+
+test_expect_success 'cover letter using branch description (2)' '
+       git checkout rebuild-1 &&
+       test_config branch.rebuild-1.description hello &&
+       git format-patch --stdout --cover-letter rebuild-1~2..rebuild-1 >actual &&
+       grep hello actual >/dev/null
+'
+
+test_expect_success 'cover letter using branch description (3)' '
+       git checkout rebuild-1 &&
+       test_config branch.rebuild-1.description hello &&
+       git format-patch --stdout --cover-letter ^master rebuild-1 >actual &&
+       grep hello actual >/dev/null
+'
+
+test_expect_success 'cover letter using branch description (4)' '
+       git checkout rebuild-1 &&
+       test_config branch.rebuild-1.description hello &&
+       git format-patch --stdout --cover-letter master.. >actual &&
+       grep hello actual >/dev/null
+'
+
+test_expect_success 'cover letter using branch description (5)' '
+       git checkout rebuild-1 &&
+       test_config branch.rebuild-1.description hello &&
+       git format-patch --stdout --cover-letter -2 HEAD >actual &&
+       grep hello actual >/dev/null
+'
+
+test_expect_success 'cover letter using branch description (6)' '
+       git checkout rebuild-1 &&
+       test_config branch.rebuild-1.description hello &&
+       git format-patch --stdout --cover-letter -2 >actual &&
+       grep hello actual >/dev/null
+'
+
 test_done