From: Stephen Haberman Date: Tue, 24 Jun 2008 08:26:54 +0000 (-0500) Subject: More email tests. X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=95a44c9b4e21eb1568e919579c644371cee7086a;p=git-central.git More email tests. --- diff --git a/server/post-receive-email b/server/post-receive-email index 39c32ac..23b4425 100644 --- a/server/post-receive-email +++ b/server/post-receive-email @@ -228,13 +228,13 @@ generate_create_branch_email() # ref that were previously not accessible # (see generate_update_branch_email for the explanation of this # command) - git rev-parse --not --branches | grep -v $(git rev-parse $refname) | - git rev-list --pretty --reverse --stdin $newrev + git rev-parse --not --branches | grep -v $(git rev-parse $refname) | git rev-list --pretty --reverse --stdin $newrev echo $LOGEND echo "" echo "Summary of changes:" - git diff-tree --stat -p $newrev + oldest_new=$(git rev-parse --not --branches | grep -v $(git rev-parse $refname) | git rev-list --stdin $newrev | tail -n 1) + git diff-tree --stat -p $oldest_new^..$newrev } # diff --git a/tests/t2200-server-post-receive-email.sh b/tests/t2200-server-post-receive-email.sh index 006bd84..1eda0d8 100644 --- a/tests/t2200-server-post-receive-email.sh +++ b/tests/t2200-server-post-receive-email.sh @@ -24,10 +24,10 @@ test_expect_success 'simple commit' ' echo $test_name >a && git commit -a -m "$test_name" && git push && - old_commit_hash=$(git rev-parse HEAD^) - new_commit_hash=$(git rev-parse HEAD) - new_commit_date=$(git log -n 1 --pretty=format:%cd HEAD) - interpolate ../t2200-1.txt 1.txt old_commit_hash new_commit_hash new_commit_date + old_commit_hash=$(git rev-parse HEAD^) && + new_commit_hash=$(git rev-parse HEAD) && + new_commit_date=$(git log -n 1 --pretty=format:%cd HEAD) && + interpolate ../t2200-1.txt 1.txt old_commit_hash new_commit_hash new_commit_date && test_cmp 1.txt server/.git/refs.heads.master.out ' diff --git a/tests/t2201-1.txt b/tests/t2201-1.txt new file mode 100644 index 0000000..3a0dbc6 --- /dev/null +++ b/tests/t2201-1.txt @@ -0,0 +1,29 @@ +To: commits@list.com +Subject: [SCM] UNNAMED PROJECT annotated tag, 1.0, created. 1.0 +X-Git-Refname: refs/tags/1.0 +X-Git-Reftype: annotated tag +X-Git-Oldrev: 0000000000000000000000000000000000000000 +X-Git-Newrev: $tag_hash + +This is an automated email from the git hooks/post-receive script. It was +generated because a ref change was pushed to the repository containing +the project "UNNAMED PROJECT". + +The annotated tag, 1.0 has been created + at $tag_hash (tag) + tagging $new_commit_hash (commit) + tagged by C O Mitter + on $tag_date + +- Log ----------------------------------------------------------------- +1.0 + +A U Thor (1): + setup + +----------------------------------------------------------------------- + + +hooks/post-receive +-- +UNNAMED PROJECT diff --git a/tests/t2201-2.txt b/tests/t2201-2.txt new file mode 100644 index 0000000..2110bc9 --- /dev/null +++ b/tests/t2201-2.txt @@ -0,0 +1,51 @@ +To: commits@list.com +Subject: [SCM] UNNAMED PROJECT branch, master, updated. 1.0-2-g$new_commit_abbrev +X-Git-Refname: refs/heads/master +X-Git-Reftype: branch +X-Git-Oldrev: $old_commit_hash +X-Git-Newrev: $new_commit_hash + +This is an automated email from the git hooks/post-receive script. It was +generated because a ref change was pushed to the repository containing +the project "UNNAMED PROJECT". + +The branch, master has been updated + via $new_commit_hash (commit) + via $prior_commit_hash (commit) + from $old_commit_hash (commit) + +Those revisions listed above that are new to this repository have +not appeared on any other notification email; so we list those +revisions in full, below. + +- Log ----------------------------------------------------------------- +commit $prior_commit_hash +Author: A U Thor +Date: $prior_commit_date + + commit on tag branch + +commit $new_commit_hash +Author: A U Thor +Date: $new_commit_date + + commit on tag branch 2 + +----------------------------------------------------------------------- + +Summary of changes: + a | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/a b/a +index 146f275..affecee 100644 +--- a/a ++++ b/a +@@ -1 +1 @@ +-setup ++commit on tag branch 2 + + +hooks/post-receive +-- +UNNAMED PROJECT diff --git a/tests/t2201-3.txt b/tests/t2201-3.txt new file mode 100644 index 0000000..4f3442c --- /dev/null +++ b/tests/t2201-3.txt @@ -0,0 +1,31 @@ +To: commits@list.com +Subject: [SCM] UNNAMED PROJECT annotated tag, 2.0, created. 2.0 +X-Git-Refname: refs/tags/2.0 +X-Git-Reftype: annotated tag +X-Git-Oldrev: 0000000000000000000000000000000000000000 +X-Git-Newrev: $tag_hash + +This is an automated email from the git hooks/post-receive script. It was +generated because a ref change was pushed to the repository containing +the project "UNNAMED PROJECT". + +The annotated tag, 2.0 has been created + at $tag_hash (tag) + tagging $new_commit_hash (commit) + replaces 1.0 + tagged by C O Mitter + on $tag_date + +- Log ----------------------------------------------------------------- +2.0 + +A U Thor (2): + commit on tag branch + commit on tag branch 2 + +----------------------------------------------------------------------- + + +hooks/post-receive +-- +UNNAMED PROJECT diff --git a/tests/t2201-server-post-receive-email-tags.sh b/tests/t2201-server-post-receive-email-tags.sh new file mode 100644 index 0000000..2a5fb7b --- /dev/null +++ b/tests/t2201-server-post-receive-email-tags.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +test_description='server post-receive email notification' + +. ./test-lib.sh + +test_expect_success 'setup' ' + echo "setup" >a && + git add a && + git commit -m "setup" && + git clone ./. server && + rm -fr server/.git/hooks && + git remote add origin ./server && + git config --add branch.master.remote origin && + git config --add branch.master.merge refs/heads/master && + GIT_DIR=./server/.git git config --add hooks.mailinglist commits@list.com && + GIT_DIR=./server/.git git config --add hooks.debug true && + GIT_DIR=. +' + +install_server_hook 'post-receive-email' 'post-receive' + +test_expect_success 'create tag' ' + git tag -a -m 1.0 1.0 && + git push --tags && + new_commit_hash=$(git rev-parse HEAD) && + tag_hash=$(git rev-parse 1.0) && + eval $(git for-each-ref --shell "--format=tag_date=%(taggerdate)" refs/tags/1.0) && + + interpolate ../t2201-1.txt 1.txt new_commit_hash tag_hash tag_date && + test_cmp 1.txt server/.git/refs.tags.1.0.out +' + +test_expect_success 'commit on tag branch' ' + old_commit_hash=$(git rev-parse HEAD) && + echo "$test_name" >a && + git commit -a -m "$test_name" && + prior_commit_hash=$(git rev-parse HEAD) && + prior_commit_date=$(git log -n 1 --pretty=format:%cd HEAD) && + + echo "$test_name 2" >a && + git commit -a -m "$test_name 2" && + new_commit_hash=$(git rev-parse HEAD) && + new_commit_date=$(git log -n 1 --pretty=format:%cd HEAD) && + + git push && + new_commit_abbrev=$(git rev-list -n 1 --pretty=format:%h HEAD | grep -v commit) && + interpolate ../t2201-2.txt 2.txt old_commit_hash new_commit_hash new_commit_date new_commit_abbrev prior_commit_hash prior_commit_date && + test_cmp 2.txt server/.git/refs.heads.master.out +' + +test_expect_success 'retag branch' ' + git tag -a -m 2.0 2.0 && + git push --tags && + new_commit_hash=$(git rev-parse HEAD) && + tag_hash=$(git rev-parse 2.0) && + eval $(git for-each-ref --shell "--format=tag_date=%(taggerdate)" refs/tags/2.0) && + + interpolate ../t2201-3.txt 3.txt new_commit_hash tag_hash tag_date && + test_cmp 3.txt server/.git/refs.tags.2.0.out +' + +test_done + diff --git a/tests/t2202-1.txt b/tests/t2202-1.txt new file mode 100644 index 0000000..b9c3b3a --- /dev/null +++ b/tests/t2202-1.txt @@ -0,0 +1,45 @@ +To: commits@list.com +Subject: [SCM] UNNAMED PROJECT branch, topic, created. $new_commit_hash +X-Git-Refname: refs/heads/topic +X-Git-Reftype: branch +X-Git-Oldrev: 0000000000000000000000000000000000000000 +X-Git-Newrev: $new_commit_hash + +This is an automated email from the git hooks/post-receive script. It was +generated because a ref change was pushed to the repository containing +the project "UNNAMED PROJECT". + +The branch, topic has been created + at $new_commit_hash (commit) + +- Log ----------------------------------------------------------------- +commit $prior_commit_hash +Author: A U Thor +Date: $prior_commit_date + + create branch on topic + +commit $new_commit_hash +Author: A U Thor +Date: $new_commit_date + + create branch on topic 2 + +----------------------------------------------------------------------- + +Summary of changes: + a | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/a b/a +index 146f275..8516a40 100644 +--- a/a ++++ b/a +@@ -1 +1 @@ +-setup ++create branch 2 + + +hooks/post-receive +-- +UNNAMED PROJECT diff --git a/tests/t2202-2.txt b/tests/t2202-2.txt new file mode 100644 index 0000000..3df1b90 --- /dev/null +++ b/tests/t2202-2.txt @@ -0,0 +1,22 @@ +To: commits@list.com +Subject: [SCM] UNNAMED PROJECT branch, topic, deleted. $old_commit_hash +X-Git-Refname: refs/heads/topic +X-Git-Reftype: branch +X-Git-Oldrev: $old_commit_hash +X-Git-Newrev: 0000000000000000000000000000000000000000 + +This is an automated email from the git hooks/post-receive script. It was +generated because a ref change was pushed to the repository containing +the project "UNNAMED PROJECT". + +The branch, topic has been deleted + was $old_commit_hash + +----------------------------------------------------------------------- +$old_commit_hash create branch on topic 2 +----------------------------------------------------------------------- + + +hooks/post-receive +-- +UNNAMED PROJECT diff --git a/tests/t2202-server-post-receive-email-branches.sh b/tests/t2202-server-post-receive-email-branches.sh new file mode 100644 index 0000000..da2f7c7 --- /dev/null +++ b/tests/t2202-server-post-receive-email-branches.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +test_description='server post-receive email notification' + +. ./test-lib.sh + +test_expect_success 'setup' ' + echo "setup" >a && + git add a && + git commit -m "setup" && + git clone ./. server && + rm -fr server/.git/hooks && + git remote add origin ./server && + git config --add branch.master.remote origin && + git config --add branch.master.merge refs/heads/master && + GIT_DIR=./server/.git git config --add hooks.mailinglist commits@list.com && + GIT_DIR=./server/.git git config --add hooks.debug true && + GIT_DIR=. +' + +install_server_hook 'post-receive-email' 'post-receive' + +test_expect_success 'create branch' ' + git checkout -b topic master && + echo "$test_name" >a && + git commit -a -m "$test_name on topic" && + prior_commit_hash=$(git rev-parse HEAD) && + prior_commit_date=$(git log -n 1 --pretty=format:%cd HEAD) && + + echo "$test_name 2" >a && + git commit -a -m "$test_name on topic 2 " && + new_commit_hash=$(git rev-parse HEAD) && + new_commit_date=$(git log -n 1 --pretty=format:%cd HEAD) && + + git push origin topic && + + interpolate ../t2202-1.txt 1.txt new_commit_hash new_commit_date prior_commit_hash prior_commit_date && + test_cmp 1.txt server/.git/refs.heads.topic.out +' + +test_expect_success 'delete branch' ' + old_commit_hash=$(git rev-parse HEAD) && + git push origin :refs/heads/topic && + + interpolate ../t2202-2.txt 2.txt old_commit_hash && + test_cmp 2.txt server/.git/refs.heads.topic.out +' + +test_done +