| #!/bin/sh |
| # |
| # Copyright (c) 2008 Deskin Miller |
| # |
| |
| test_description='git svn partial-rebuild tests' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./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 |