From: Johannes Schindelin Date: Tue, 3 Jul 2007 16:50:19 +0000 (+0100) Subject: filter-branch: add a test for the commit removal example X-Git-Tag: v1.5.3-rc1~96 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f6b78c6eb626d477b252d39ef2801d4670675a2b;p=git.git filter-branch: add a test for the commit removal example In the man page, there is an example which describes how to remove single commits (although it keeps the changes which were not reverted in the next non-removed commit). Better make sure that it works as expected. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 21f9bc5dd..451ac861a 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -107,4 +107,39 @@ test_expect_success 'use index-filter to move into a subdirectory' ' mv \$GIT_INDEX_FILE.new \$GIT_INDEX_FILE" directorymoved && test -z "$(git diff HEAD directorymoved:newsubdir)"' +test_expect_success 'author information is preserved' ' + : > i && + git add i && + test_tick && + GIT_AUTHOR_NAME="B V Uips" git commit -m bvuips && + git-filter-branch --msg-filter "cat; \ + test \$GIT_COMMIT = $(git rev-parse master) && \ + echo Hallo" \ + preserved-author && + test 1 = $(git rev-list --author="B V Uips" preserved-author | wc -l) +' + +test_expect_success "remove a certain author's commits" ' + echo i > i && + test_tick && + git commit -m i i && + git-filter-branch --commit-filter "\ + if [ \"\$GIT_AUTHOR_NAME\" = \"B V Uips\" ];\ + then\ + shift;\ + while [ -n \"\$1\" ];\ + do\ + shift;\ + echo \"\$1\";\ + shift;\ + done;\ + else\ + git commit-tree \"\$@\";\ + fi" removed-author && + cnt1=$(git rev-list master | wc -l) && + cnt2=$(git rev-list removed-author | wc -l) && + test $cnt1 -eq $(($cnt2 + 1)) && + test 0 = $(git rev-list --author="B V Uips" removed-author | wc -l) +' + test_done