t4150: test applying StGit patch

By default, an StGit patch separates the subject from the commit message
and headers as follows:

	$subject

	From: $author_name <$author_email>

	$message
	---
	$diffstats

We test git-am's ability to detect such a patch as an StGit patch, and
its ability to be able to extract the commit author, date and message
from such a patch.

Based-on-patch-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Paul Tan 2015-06-08 23:48:47 +08:00 committed by Junio C Hamano
parent 3d4a3ffe64
commit 1daaddd1d3

View File

@ -104,6 +104,18 @@ test_expect_success setup '
echo "X-Fake-Field: Line Three" &&
git format-patch --stdout first | sed -e "1d"
} > patch1-ws.eml &&
{
sed -ne "1p" msg &&
echo &&
echo "From: $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>" &&
echo "Date: $GIT_AUTHOR_DATE" &&
echo &&
sed -e "1,2d" msg &&
echo &&
echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" &&
echo "---" &&
git diff-tree --no-commit-id --stat -p second
} >patch1-stgit.eml &&
sed -n -e "3,\$p" msg >file &&
git add file &&
@ -187,6 +199,16 @@ test_expect_success 'am applies patch e-mail with preceding whitespace' '
test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
'
test_expect_success 'am applies stgit patch' '
rm -fr .git/rebase-apply &&
git checkout -f first &&
git am patch1-stgit.eml &&
test_path_is_missing .git/rebase-apply &&
git diff --exit-code second &&
test_cmp_rev second HEAD &&
test_cmp_rev second^ HEAD^
'
test_expect_success 'setup: new author and committer' '
GIT_AUTHOR_NAME="Another Thor" &&
GIT_AUTHOR_EMAIL="a.thor@example.com" &&