(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git-svn svn mergeinfo properties">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (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") ("/t9151/svn-mergeinfo.dump' &&\n") ("\tgit svn init --minimize-url -R svnmerge ") 
          ("\t  --rewrite-root=http://svn.example.org ") ("\t  -T trunk -b branches '") ($ VSub_Name "$svnrepo") ("' &&\n") ("\tgit svn fetch --all\n") ("\t")
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"all svn merges became git merge commits">)} 
      {
        (SQ <"\n"> <"\tunmarked=$(git rev-list --parents --all --grep=Merge |\n"> 
          <"\t\tgrep -v \" .* \" | cut -f1 -d\" \") &&\n"> <"\t[ -z \"$unmarked\" ]\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"cherry picks did not become git merge commits">)} 
      {
        (SQ <"\n"> <"\tbad_cherries=$(git rev-list --parents --all --grep=Cherry |\n"> 
          <"\t\tgrep \" .* \" | cut -f1 -d\" \") &&\n"> <"\t[ -z \"$bad_cherries\" ]\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"svn non-merge merge commits did not become git merge commits">)} 
      {
        (SQ <"\n"> <"\tbad_non_merges=$(git rev-list --parents --all --grep=non-merge |\n"> 
          <"\t\tgrep \" .* \" | cut -f1 -d\" \") &&\n"> <"\t[ -z \"$bad_non_merges\" ]\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"commit made to merged branch is reachable from the merge">)} 
      {
        (SQ <"\n"> 
          <
"\tbefore_commit=$(git rev-list --all --grep=\"trunk commit before merging trunk to b2\") &&\n"
          > <"\tmerge_commit=$(git rev-list --all --grep=\"Merge trunk to b2\") &&\n"> 
          <"\tnot_reachable=$(git rev-list -1 $before_commit --not $merge_commit) &&\n"> <"\t[ -z \"$not_reachable\" ]\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"merging two branches in one commit is detected correctly">)} 
      {
        (SQ <"\n"> <"\tf1_commit=$(git rev-list --all --grep=\"make f1 branch from trunk\") &&\n"> 
          <"\tf2_commit=$(git rev-list --all --grep=\"make f2 branch from trunk\") &&\n"> <"\tmerge_commit=$(git rev-list --all --grep=\"Merge f1 and f2 to trunk\") &&\n"> 
          <"\tnot_reachable=$(git rev-list -1 $f1_commit $f2_commit --not $merge_commit) &&\n"> <"\t[ -z \"$not_reachable\" ]\n"> <"\t">
        )
      }
    )
    (C {(test_expect_failure)} {(SQ <"everything got merged in the end">)} 
      {
        (SQ <"\n"> <"\tunmerged=$(git rev-list --all --not master) &&\n"> <"\t[ -z \"$unmerged\" ]\n"> 
          <"\t">
        )
      }
    )
    (C {(test_done)})
  ]
)