(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)})
  ]
)