#!/bin/sh # # Copyright (c) 2008 Deskin Miller # global test_description := ''git svn partial-rebuild tests'' source ./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 (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn partial-rebuild tests">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ <"initialize svnrepo">)} { (SQ <"\n"> <"\tmkdir import &&\n"> <"\t(\n"> <"\t\t(cd import &&\n"> <"\t\tmkdir trunk branches tags &&\n"> <"\t\t(cd trunk &&\n"> <"\t\techo foo > foo\n"> <"\t\t) &&\n"> <"\t\tsvn_cmd import -m \"import for git-svn\" . \"$svnrepo\" >/dev/null\n"> <"\t\t) &&\n"> <"\t\trm -rf import &&\n"> <"\t\tsvn_cmd co \"$svnrepo\"/trunk trunk &&\n"> <"\t\t(cd trunk &&\n"> <"\t\techo bar >> foo &&\n"> <"\t\tsvn_cmd ci -m \"updated trunk\"\n"> <"\t\t) &&\n"> <"\t\trm -rf trunk\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"import into git">)} { (SQ <"\n"> <"\tgit svn init --stdlayout \"$svnrepo\" &&\n"> <"\tgit svn fetch &&\n"> <"\tgit checkout remotes/origin/trunk\n"> ) } ) (C {(test_expect_success)} {(SQ <"git svn branch tests">)} { (SQ <"\n"> <"\tgit svn branch a &&\n"> <"\tbase=$(git rev-parse HEAD:) &&\n"> <"\ttest $base = $(git rev-parse remotes/origin/a:) &&\n"> <"\tgit svn branch -m \"created branch b blah\" b &&\n"> <"\ttest $base = $(git rev-parse remotes/origin/b:) &&\n"> <"\ttest_must_fail git branch -m \"no branchname\" &&\n"> <"\tgit svn branch -n c &&\n"> <"\ttest_must_fail git rev-parse remotes/origin/c &&\n"> <"\ttest_must_fail git svn branch a &&\n"> <"\tgit svn branch -t tag1 &&\n"> <"\ttest $base = $(git rev-parse remotes/origin/tags/tag1:) &&\n"> <"\tgit svn branch --tag tag2 &&\n"> <"\ttest $base = $(git rev-parse remotes/origin/tags/tag2:) &&\n"> <"\tgit svn tag tag3 &&\n"> <"\ttest $base = $(git rev-parse remotes/origin/tags/tag3:) &&\n"> <"\tgit svn tag -m \"created tag4 foo\" tag4 &&\n"> <"\ttest $base = $(git rev-parse remotes/origin/tags/tag4:) &&\n"> <"\ttest_must_fail git svn tag -m \"no tagname\" &&\n"> <"\tgit svn tag -n tag5 &&\n"> <"\ttest_must_fail git rev-parse remotes/origin/tags/tag5 &&\n"> <"\ttest_must_fail git svn tag tag1\n"> ) } ) (C {(test_expect_success)} {(SQ <"branch uses correct svn-remote">)} { (SQ <"\n"> <"\t(svn_cmd co \"$svnrepo\" svn &&\n"> <"\tcd svn &&\n"> <"\tmkdir mirror &&\n"> <"\tsvn_cmd add mirror &&\n"> <"\tsvn_cmd copy trunk mirror/ &&\n"> <"\tsvn_cmd copy tags mirror/ &&\n"> <"\tsvn_cmd copy branches mirror/ &&\n"> <"\tsvn_cmd ci -m \"made mirror\" ) &&\n"> <"\trm -rf svn &&\n"> <"\tgit svn init -s -R mirror --prefix=mirror/ \"$svnrepo\"/mirror &&\n"> <"\tgit svn fetch -R mirror &&\n"> <"\tgit checkout mirror/trunk &&\n"> <"\tbase=$(git rev-parse HEAD:) &&\n"> <"\tgit svn branch -m \"branch in mirror\" d &&\n"> <"\ttest $base = $(git rev-parse remotes/mirror/d:) &&\n"> <"\ttest_must_fail git rev-parse remotes/d\n"> ) } ) (C {(test_done)}) ] )