Skip to content

Commit

Permalink
t4150: am with applypatch-msg hook
Browse files Browse the repository at this point in the history
Since d1c5f2a (Add git-am, applymbox replacement., 2005-10-07), git-am
will invoke the applypatch-msg hooks just after extracting the patch
message. If the applypatch-msg hook exits with a non-zero status, git-am
abort before even applying the patch to the index.

Add tests for this hook.

Helped-by: Junio C Hamano <gitster@pobox.com>
Reviewed-by: Stefan Beller <sbeller@google.com>
Reviewed-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Paul Tan authored and Junio C Hamano committed Jul 20, 2015
1 parent 9e2a113 commit f26bdf2
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions t/t4150-am.sh
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,41 @@ test_expect_success 'am applies patch e-mail with preceding whitespace' '
test "$(git rev-parse second^)" = "$(git rev-parse HEAD^)"
'

test_expect_success 'am with applypatch-msg hook' '
test_when_finished "rm -f .git/hooks/applypatch-msg" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
write_script .git/hooks/applypatch-msg <<-\EOF &&
cat "$1" >actual-msg &&
echo hook-message >"$1"
EOF
git am patch1 &&
test_path_is_missing .git/rebase-apply &&
git diff --exit-code second &&
echo hook-message >expected &&
git log -1 --format=format:%B >actual &&
test_cmp expected actual &&
git log -1 --format=format:%B second >expected &&
test_cmp expected actual-msg
'

test_expect_success 'am with failing applypatch-msg hook' '
test_when_finished "rm -f .git/hooks/applypatch-msg" &&
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout first &&
mkdir -p .git/hooks &&
write_script .git/hooks/applypatch-msg <<-\EOF &&
exit 1
EOF
test_must_fail git am patch1 &&
test_path_is_dir .git/rebase-apply &&
git diff --exit-code first &&
test_cmp_rev first HEAD
'

test_expect_success 'setup: new author and committer' '
GIT_AUTHOR_NAME="Another Thor" &&
GIT_AUTHOR_EMAIL="a.thor@example.com" &&
Expand Down

0 comments on commit f26bdf2

Please sign in to comment.