(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git-svn svn mergeinfo properties'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./lib-git-svn.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'load svn dump'>)}
        {
          (DQ <'\n'> <'\tsvnadmin load -q \''> ($ Id.VSub_DollarName rawsvnrepo) <'\' '> <'\t  < \''> 
            ($ Id.VSub_DollarName 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 \''> ($ Id.VSub_DollarName svnrepo) <'\' &&\n'> <'\tgit svn fetch --all\n'> 
            <'\t'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<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'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<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'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<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'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<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'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<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'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_failure>
      more_env: []
      words: [
        {<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'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)