(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git-svn svn mergeinfo propagation">)} spids: [16] ) ] spids: [16] ) (C {(.)} {(./lib-git-svn.sh)}) (C {(test_expect_success)} {(SQ <"load svn dump">)} { (DQ ("\n") ("\tsvnadmin load -q '") ($ VSub_Name "$rawsvnrepo") ("' ") ("\t < '") ($ VSub_Name "$TEST_DIRECTORY") ("/t9161/branches.dump' &&\n") ("\tgit svn init --minimize-url -R svnmerge ") ("\t -T trunk -b branches '") ($ VSub_Name "$svnrepo") ("' &&\n") ("\tgit svn fetch --all\n") ("\t") ) } ) (C {(test_expect_success)} {(SQ <"propagate merge information">)} { (SQ <"\n"> <"\tgit config svn.pushmergeinfo yes &&\n"> <"\tgit checkout origin/svnb1 &&\n"> <"\tgit merge --no-ff origin/svnb2 &&\n"> <"\tgit svn dcommit\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"check svn:mergeinfo">)} { (SQ <"\n"> <"\tmergeinfo=$(svn_cmd propget svn:mergeinfo \"$svnrepo\"/branches/svnb1) &&\n"> <"\ttest \"$mergeinfo\" = \"/branches/svnb2:3,8\"\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"merge another branch">)} {(SQ <"\n"> <"\tgit merge --no-ff origin/svnb3 &&\n"> <"\tgit svn dcommit\n"> <"\t">)} ) (C {(test_expect_success)} {(SQ <"check primary parent mergeinfo respected">)} { (SQ <"\n"> <"\tmergeinfo=$(svn_cmd propget svn:mergeinfo \"$svnrepo\"/branches/svnb1) &&\n"> <"\ttest \"$mergeinfo\" = \"/branches/svnb2:3,8\n"> <"/branches/svnb3:4,9\"\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"merge existing merge">)} {(SQ <"\n"> <"\tgit merge --no-ff origin/svnb4 &&\n"> <"\tgit svn dcommit\n"> <"\t">)} ) (C {(test_expect_success)} {(DQ ("check both parents' mergeinfo respected"))} { (SQ <"\n"> <"\tmergeinfo=$(svn_cmd propget svn:mergeinfo \"$svnrepo\"/branches/svnb1) &&\n"> <"\ttest \"$mergeinfo\" = \"/branches/svnb2:3,8\n"> <"/branches/svnb3:4,9\n"> <"/branches/svnb4:5-6,10-12\n"> <"/branches/svnb5:6,11\"\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"make further commits to branch">)} { (SQ <"\n"> <"\tgit checkout origin/svnb2 &&\n"> <"\ttouch newb2file &&\n"> <"\tgit add newb2file &&\n"> <"\tgit commit -m \"later b2 commit\" &&\n"> <"\ttouch newb2file-2 &&\n"> <"\tgit add newb2file-2 &&\n"> <"\tgit commit -m \"later b2 commit 2\" &&\n"> <"\tgit svn dcommit\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"second forward merge">)} { (SQ <"\n"> <"\tgit checkout origin/svnb1 &&\n"> <"\tgit merge --no-ff origin/svnb2 &&\n"> <"\tgit svn dcommit\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"check new mergeinfo added">)} { (SQ <"\n"> <"\tmergeinfo=$(svn_cmd propget svn:mergeinfo \"$svnrepo\"/branches/svnb1) &&\n"> <"\ttest \"$mergeinfo\" = \"/branches/svnb2:3,8,16-17\n"> <"/branches/svnb3:4,9\n"> <"/branches/svnb4:5-6,10-12\n"> <"/branches/svnb5:6,11\"\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"reintegration merge">)} { (SQ <"\n"> <"\tgit checkout origin/svnb4 &&\n"> <"\tgit merge --no-ff origin/svnb1 &&\n"> <"\tgit svn dcommit\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"check reintegration mergeinfo">)} { (SQ <"\n"> <"\tmergeinfo=$(svn_cmd propget svn:mergeinfo \"$svnrepo\"/branches/svnb4) &&\n"> <"\ttest \"$mergeinfo\" = \"/branches/svnb1:2-4,7-9,13-18\n"> <"/branches/svnb2:3,8,16-17\n"> <"/branches/svnb3:4,9\n"> <"/branches/svnb5:6,11\"\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"dcommit a merge at the top of a stack">)} { (SQ <"\n"> <"\tgit checkout origin/svnb1 &&\n"> <"\ttouch anotherfile &&\n"> <"\tgit add anotherfile &&\n"> <"\tgit commit -m \"a commit\" &&\n"> <"\tgit merge origin/svnb4 &&\n"> <"\tgit svn dcommit\n"> <"\t"> ) } ) (C {(test_done)}) ] )