#!/bin/sh # # Copyright (c) 2009 Eric Wong # global test_description := ''git svn property tests'' source ./lib-git-svn.sh test_expect_success 'setup repo with a git repo inside it' ' svn_cmd co "$svnrepo" s && ( cd s && git init && test -f .git/HEAD && > .git/a && echo a > a && svn_cmd add .git a && svn_cmd commit -m "create a nested git repo" && svn_cmd up && echo hi >> .git/a && svn_cmd commit -m "modify .git/a" && svn_cmd up ) ' test_expect_success 'clone an SVN repo containing a git repo' ' git svn clone "$svnrepo" g && echo a > expect && test_cmp expect g/a ' test_expect_success 'SVN-side change outside of .git' ' ( cd s && echo b >> a && svn_cmd commit -m "SVN-side change outside of .git" && svn_cmd up && svn_cmd log -v | fgrep "SVN-side change outside of .git" ) ' test_expect_success 'update git svn-cloned repo' ' ( cd g && git svn rebase && echo a > expect && echo b >> expect && test_cmp a expect && rm expect ) ' test_expect_success 'SVN-side change inside of .git' ' ( cd s && git add a && git commit -m "add a inside an SVN repo" && git log && svn_cmd add --force .git && svn_cmd commit -m "SVN-side change inside of .git" && svn_cmd up && svn_cmd log -v | fgrep "SVN-side change inside of .git" ) ' test_expect_success 'update git svn-cloned repo' ' ( cd g && git svn rebase && echo a > expect && echo b >> expect && test_cmp a expect && rm expect ) ' test_expect_success 'SVN-side change in and out of .git' ' ( cd s && echo c >> a && git add a && git commit -m "add a inside an SVN repo" && svn_cmd commit -m "SVN-side change in and out of .git" && svn_cmd up && svn_cmd log -v | fgrep "SVN-side change in and out of .git" ) ' test_expect_success 'update git svn-cloned repo again' ' ( cd g && git svn rebase && echo a > expect && echo b >> expect && echo c >> expect && test_cmp a expect && rm expect ) ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn property tests">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ <"setup repo with a git repo inside it">)} { (SQ <"\n"> <"\tsvn_cmd co \"$svnrepo\" s &&\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\tgit init &&\n"> <"\t\ttest -f .git/HEAD &&\n"> <"\t\t> .git/a &&\n"> <"\t\techo a > a &&\n"> <"\t\tsvn_cmd add .git a &&\n"> <"\t\tsvn_cmd commit -m \"create a nested git repo\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\techo hi >> .git/a &&\n"> <"\t\tsvn_cmd commit -m \"modify .git/a\" &&\n"> <"\t\tsvn_cmd up\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"clone an SVN repo containing a git repo">)} { (SQ <"\n"> <"\tgit svn clone \"$svnrepo\" g &&\n"> <"\techo a > expect &&\n"> <"\ttest_cmp expect g/a\n"> ) } ) (C {(test_expect_success)} {(SQ <"SVN-side change outside of .git">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\techo b >> a &&\n"> <"\t\tsvn_cmd commit -m \"SVN-side change outside of .git\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd log -v | fgrep \"SVN-side change outside of .git\"\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"update git svn-cloned repo">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd g &&\n"> <"\t\tgit svn rebase &&\n"> <"\t\techo a > expect &&\n"> <"\t\techo b >> expect &&\n"> <"\t\ttest_cmp a expect &&\n"> <"\t\trm expect\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"SVN-side change inside of .git">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\tgit add a &&\n"> <"\t\tgit commit -m \"add a inside an SVN repo\" &&\n"> <"\t\tgit log &&\n"> <"\t\tsvn_cmd add --force .git &&\n"> <"\t\tsvn_cmd commit -m \"SVN-side change inside of .git\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd log -v | fgrep \"SVN-side change inside of .git\"\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"update git svn-cloned repo">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd g &&\n"> <"\t\tgit svn rebase &&\n"> <"\t\techo a > expect &&\n"> <"\t\techo b >> expect &&\n"> <"\t\ttest_cmp a expect &&\n"> <"\t\trm expect\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"SVN-side change in and out of .git">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd s &&\n"> <"\t\techo c >> a &&\n"> <"\t\tgit add a &&\n"> <"\t\tgit commit -m \"add a inside an SVN repo\" &&\n"> <"\t\tsvn_cmd commit -m \"SVN-side change in and out of .git\" &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\tsvn_cmd log -v | fgrep \"SVN-side change in and out of .git\"\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"update git svn-cloned repo again">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd g &&\n"> <"\t\tgit svn rebase &&\n"> <"\t\techo a > expect &&\n"> <"\t\techo b >> expect &&\n"> <"\t\techo c >> expect &&\n"> <"\t\ttest_cmp a expect &&\n"> <"\t\trm expect\n"> <"\t)\n"> ) } ) (C {(test_done)}) ] )