diff options
Diffstat (limited to 't/t9122-git-svn-author.sh')
| -rwxr-xr-x | t/t9122-git-svn-author.sh | 84 | 
1 files changed, 84 insertions, 0 deletions
| diff --git a/t/t9122-git-svn-author.sh b/t/t9122-git-svn-author.sh new file mode 100755 index 0000000000..1190576a65 --- /dev/null +++ b/t/t9122-git-svn-author.sh @@ -0,0 +1,84 @@ +#!/bin/sh + +test_description='git svn authorship' +. ./lib-git-svn.sh + +test_expect_success 'setup svn repository' ' +	svn checkout "$svnrepo" work.svn && +	( +		cd work.svn && +		echo >file +		svn add file +		svn commit -m "first commit" file +	) +' + +test_expect_success 'interact with it via git-svn' ' +	mkdir work.git && +	( +		cd work.git && +		git svn init "$svnrepo" +		git svn fetch && + +		echo modification >file && +		test_tick && +		git commit -a -m second && + +		test_tick && +		git svn dcommit && + +		echo "further modification" >file && +		test_tick && +		git commit -a -m third && + +		test_tick && +		git svn --add-author-from dcommit && + +		echo "yet further modification" >file && +		test_tick && +		git commit -a -m fourth && + +		test_tick && +		git svn --add-author-from --use-log-author dcommit && + +		git log && + +		git show -s HEAD^^ >../actual.2 && +		git show -s HEAD^  >../actual.3 && +		git show -s HEAD   >../actual.4 + +	) && + +	# Make sure that --add-author-from without --use-log-author +	# did not affect the authorship information +	myself=$(grep "^Author: " actual.2) && +	unaffected=$(grep "^Author: " actual.3) && +	test "z$myself" = "z$unaffected" && + +	# Make sure lack of --add-author-from did not add cruft +	! grep "^    From: A U Thor " actual.2 && + +	# Make sure --add-author-from added cruft +	grep "^    From: A U Thor " actual.3 && +	grep "^    From: A U Thor " actual.4 && + +	# Make sure --add-author-from with --use-log-author affected +	# the authorship information +	grep "^Author: A U Thor " actual.4 && + +	# Make sure there are no commit messages with excess blank lines +	test $(grep "^ " actual.2 | wc -l) = 3 && +	test $(grep "^ " actual.3 | wc -l) = 5 && +	test $(grep "^ " actual.4 | wc -l) = 5 && + +	# Make sure there are no svn commit messages with excess blank lines +	( +		cd work.svn && +		svn up && +		 +		test $(svn log -r2:2 | wc -l) = 5 && +		test $(svn log -r4:4 | wc -l) = 7 +	) +' + +test_done | 
