#!/bin/sh global test_description := ''git svn fetch deleted tag 2'' source ./lib-git-svn.sh test_expect_success 'setup svn repo' ' mkdir -p import/branches && mkdir -p import/tags && mkdir -p import/trunk/subdir1 && mkdir -p import/trunk/subdir2 && mkdir -p import/trunk/subdir3 && echo "file1" >import/trunk/subdir1/file && echo "file2" >import/trunk/subdir2/file && echo "file3" >import/trunk/subdir3/file && svn_cmd import -m "import for git svn" import "$svnrepo" && rm -rf import && svn_cmd co "$svnrepo/trunk" svn_project && (cd svn_project && echo "change1" >>subdir1/file && echo "change2" >>subdir2/file && echo "change3" >>subdir3/file && svn_cmd ci -m "change" . ) && svn_cmd cp -m "create mytag 1" -r2 "$svnrepo/trunk/subdir1" "$svnrepo/tags/mytag" && svn_cmd rm -m "delete mytag 1" "$svnrepo/tags/mytag" && svn_cmd cp -m "create mytag 2" -r2 "$svnrepo/trunk/subdir2" "$svnrepo/tags/mytag" && svn_cmd rm -m "delete mytag 2" "$svnrepo/tags/mytag" && svn_cmd cp -m "create mytag 3" -r2 "$svnrepo/trunk/subdir3" "$svnrepo/tags/mytag" ' test_expect_success 'fetch deleted tags from same revision with no checksum error' ' git svn init --stdlayout "$svnrepo" git_project && cd git_project && git svn fetch && git diff --exit-code master:subdir3/file origin/tags/mytag:file && git diff --exit-code master:subdir2/file origin/tags/mytag^:file && git diff --exit-code master:subdir1/file origin/tags/mytag^^:file ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn fetch deleted tag 2">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ <"setup svn repo">)} { (SQ <"\n"> <"\tmkdir -p import/branches &&\n"> <"\tmkdir -p import/tags &&\n"> <"\tmkdir -p import/trunk/subdir1 &&\n"> <"\tmkdir -p import/trunk/subdir2 &&\n"> <"\tmkdir -p import/trunk/subdir3 &&\n"> <"\techo \"file1\" >import/trunk/subdir1/file &&\n"> <"\techo \"file2\" >import/trunk/subdir2/file &&\n"> <"\techo \"file3\" >import/trunk/subdir3/file &&\n"> <"\tsvn_cmd import -m \"import for git svn\" import \"$svnrepo\" &&\n"> <"\trm -rf import &&\n"> <"\n"> <"\tsvn_cmd co \"$svnrepo/trunk\" svn_project &&\n"> <"\t(cd svn_project &&\n"> <"\t\techo \"change1\" >>subdir1/file &&\n"> <"\t\techo \"change2\" >>subdir2/file &&\n"> <"\t\techo \"change3\" >>subdir3/file &&\n"> <"\t\tsvn_cmd ci -m \"change\" .\n"> <"\t) &&\n"> <"\n"> < "\tsvn_cmd cp -m \"create mytag 1\" -r2 \"$svnrepo/trunk/subdir1\" \"$svnrepo/tags/mytag\" &&\n" > <"\tsvn_cmd rm -m \"delete mytag 1\" \"$svnrepo/tags/mytag\" &&\n"> < "\tsvn_cmd cp -m \"create mytag 2\" -r2 \"$svnrepo/trunk/subdir2\" \"$svnrepo/tags/mytag\" &&\n" > <"\tsvn_cmd rm -m \"delete mytag 2\" \"$svnrepo/tags/mytag\" &&\n"> < "\tsvn_cmd cp -m \"create mytag 3\" -r2 \"$svnrepo/trunk/subdir3\" \"$svnrepo/tags/mytag\"\n" > ) } ) (C {(test_expect_success)} {(SQ <"fetch deleted tags from same revision with no checksum error">)} { (SQ <"\n"> <"\tgit svn init --stdlayout \"$svnrepo\" git_project &&\n"> <"\tcd git_project &&\n"> <"\tgit svn fetch &&\n"> <"\n"> <"\tgit diff --exit-code master:subdir3/file origin/tags/mytag:file &&\n"> <"\tgit diff --exit-code master:subdir2/file origin/tags/mytag^:file &&\n"> <"\tgit diff --exit-code master:subdir1/file origin/tags/mytag^^:file\n"> ) } ) (C {(test_done)}) ] )