| #!/bin/sh | 
 | # | 
 | # Copyright (c) 2008 Deskin Miller | 
 | # | 
 |  | 
 | test_description='git svn partial-rebuild tests' | 
 | . ./lib-git-svn.sh | 
 |  | 
 | test_expect_success 'initialize svnrepo' ' | 
 | 	mkdir import && | 
 | 	( | 
 | 		(cd import && | 
 | 		mkdir trunk branches tags && | 
 | 		(cd trunk && | 
 | 		echo foo > foo | 
 | 		) && | 
 | 		svn_cmd import -m "import for git-svn" . "$svnrepo" >/dev/null | 
 | 		) && | 
 | 		rm -rf import && | 
 | 		svn_cmd co "$svnrepo"/trunk trunk && | 
 | 		(cd trunk && | 
 | 		echo bar >> foo && | 
 | 		svn_cmd ci -m "updated trunk" | 
 | 		) && | 
 | 		rm -rf trunk | 
 | 	) | 
 | ' | 
 |  | 
 | test_expect_success 'import into git' ' | 
 | 	git svn init --stdlayout "$svnrepo" && | 
 | 	git svn fetch && | 
 | 	git checkout remotes/origin/trunk | 
 | ' | 
 |  | 
 | test_expect_success 'git svn branch tests' ' | 
 | 	git svn branch a && | 
 | 	base=$(git rev-parse HEAD:) && | 
 | 	test $base = $(git rev-parse remotes/origin/a:) && | 
 | 	git svn branch -m "created branch b blah" b && | 
 | 	test $base = $(git rev-parse remotes/origin/b:) && | 
 | 	test_must_fail git branch -m "no branchname" && | 
 | 	git svn branch -n c && | 
 | 	test_must_fail git rev-parse remotes/origin/c && | 
 | 	test_must_fail git svn branch a && | 
 | 	git svn branch -t tag1 && | 
 | 	test $base = $(git rev-parse remotes/origin/tags/tag1:) && | 
 | 	git svn branch --tag tag2 && | 
 | 	test $base = $(git rev-parse remotes/origin/tags/tag2:) && | 
 | 	git svn tag tag3 && | 
 | 	test $base = $(git rev-parse remotes/origin/tags/tag3:) && | 
 | 	git svn tag -m "created tag4 foo" tag4 && | 
 | 	test $base = $(git rev-parse remotes/origin/tags/tag4:) && | 
 | 	test_must_fail git svn tag -m "no tagname" && | 
 | 	git svn tag -n tag5 && | 
 | 	test_must_fail git rev-parse remotes/origin/tags/tag5 && | 
 | 	test_must_fail git svn tag tag1 | 
 | ' | 
 |  | 
 | test_expect_success 'branch uses correct svn-remote' ' | 
 | 	(svn_cmd co "$svnrepo" svn && | 
 | 	cd svn && | 
 | 	mkdir mirror && | 
 | 	svn_cmd add mirror && | 
 | 	svn_cmd copy trunk mirror/ && | 
 | 	svn_cmd copy tags mirror/ && | 
 | 	svn_cmd copy branches mirror/ && | 
 | 	svn_cmd ci -m "made mirror" ) && | 
 | 	rm -rf svn && | 
 | 	git svn init -s -R mirror --prefix=mirror/ "$svnrepo"/mirror && | 
 | 	git svn fetch -R mirror && | 
 | 	git checkout mirror/trunk && | 
 | 	base=$(git rev-parse HEAD:) && | 
 | 	git svn branch -m "branch in mirror" d && | 
 | 	test $base = $(git rev-parse remotes/mirror/d:) && | 
 | 	test_must_fail git rev-parse remotes/d | 
 | ' | 
 |  | 
 | test_done |