(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 <'test cherry-pick and revert with renames\n'> <'\n'> <'  --\n'> 
                <'   + rename2: renames oops to opos\n'> <'  +  rename1: renames oops to spoo\n'> <'  +  added:   adds extra line to oops\n'> 
                <'  ++ initial: has lines in oops\n'> <'\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<setup>}
        {
          (SQ <'\n'> <'\n'> <'\tfor l in a b c d e f g h i j k l m n o\n'> <'\tdo\n'> 
            <'\t\techo $l$l$l$l$l$l$l$l$l\n'> <'\tdone >oops &&\n'> <'\n'> <'\ttest_tick &&\n'> <'\tgit add oops &&\n'> 
            <'\tgit commit -m initial &&\n'> <'\tgit tag initial &&\n'> <'\n'> <'\ttest_tick &&\n'> 
            <'\techo "Add extra line at the end" >>oops &&\n'> <'\tgit commit -a -m added &&\n'> <'\tgit tag added &&\n'> <'\n'> <'\ttest_tick &&\n'> 
            <'\tgit mv oops spoo &&\n'> <'\tgit commit -m rename1 &&\n'> <'\tgit tag rename1 &&\n'> <'\n'> <'\ttest_tick &&\n'> 
            <'\tgit checkout -b side initial &&\n'> <'\tgit mv oops opos &&\n'> <'\tgit commit -m rename2 &&\n'> <'\tgit tag rename2\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick --nonsense'>)}
        {
          (SQ <'\n'> <'\n'> <'\tpos=$(git rev-parse HEAD) &&\n'> <'\tgit diff --exit-code HEAD &&\n'> 
            <'\ttest_must_fail git cherry-pick --nonsense 2>msg &&\n'> <'\tgit diff --exit-code HEAD "$pos" &&\n'> <'\ttest_i18ngrep '>
          ) <Id.Lit_LBracket '['> <Uu> <Id.Lit_RBracket ']'> <sage> <Id.Lit_Colon ':'> (SQ <' msg\n'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'revert --nonsense'>)}
        {
          (SQ <'\n'> <'\n'> <'\tpos=$(git rev-parse HEAD) &&\n'> <'\tgit diff --exit-code HEAD &&\n'> 
            <'\ttest_must_fail git revert --nonsense 2>msg &&\n'> <'\tgit diff --exit-code HEAD "$pos" &&\n'> <'\ttest_i18ngrep '>
          ) <Id.Lit_LBracket '['> <Uu> <Id.Lit_RBracket ']'> <sage> <Id.Lit_Colon ':'> (SQ <' msg\n'>)
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick after renaming branch'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit checkout rename2 &&\n'> <'\tgit cherry-pick added &&\n'> 
            <'\ttest $(git rev-parse HEAD^) = $(git rev-parse rename2) &&\n'> <'\ttest -f opos &&\n'> <'\tgrep "Add extra line at the end" opos &&\n'> 
            <'\tgit reflog -1 | grep cherry-pick\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'revert after renaming branch'>)}
        {
          (SQ <'\n'> <'\n'> <'\tgit checkout rename1 &&\n'> <'\tgit revert added &&\n'> 
            <'\ttest $(git rev-parse HEAD^) = $(git rev-parse rename1) &&\n'> <'\ttest -f spoo &&\n'> <'\t! grep "Add extra line at the end" spoo &&\n'> 
            <'\tgit reflog -1 | grep revert\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick on stat-dirty working tree'>)}
        {
          (SQ <'\n'> <'\tgit clone . copy &&\n'> <'\t(\n'> <'\t\tcd copy &&\n'> 
            <'\t\tgit checkout initial &&\n'> <'\t\ttest-chmtime +40 oops &&\n'> <'\t\tgit cherry-pick added\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'revert forbidden on dirty working tree'>)}
        {
          (SQ <'\n'> <'\n'> <'\techo content >extra_file &&\n'> <'\tgit add extra_file &&\n'> 
            <'\ttest_must_fail git revert HEAD 2>errors &&\n'> <'\ttest_i18ngrep "your local changes would be overwritten by " errors\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick on unborn branch'>)}
        {
          (SQ <'\n'> <'\tgit checkout --orphan unborn &&\n'> <'\tgit rm --cached -r . &&\n'> 
            <'\trm -rf * &&\n'> <'\tgit cherry-pick initial &&\n'> <'\tgit diff --quiet initial &&\n'> 
            <'\t! test_cmp_rev initial HEAD\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick "-" to pick from previous branch'>)}
        {
          (SQ <'\n'> <'\tgit checkout unborn &&\n'> <'\ttest_commit to-pick actual content &&\n'> 
            <'\tgit checkout master &&\n'> <'\tgit cherry-pick - &&\n'> <'\techo content >expect &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick "-" is meaningless without checkout'>)}
        {
          (SQ <'\n'> <'\ttest_create_repo afresh &&\n'> <'\t(\n'> <'\t\tcd afresh &&\n'> 
            <'\t\ttest_commit one &&\n'> <'\t\ttest_commit two &&\n'> <'\t\ttest_commit three &&\n'> <'\t\ttest_must_fail git cherry-pick -\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'cherry-pick "-" works with arguments'>)}
        {
          (SQ <'\n'> <'\tgit checkout -b side-branch &&\n'> <'\ttest_commit change actual change &&\n'> 
            <'\tgit checkout master &&\n'> <'\tgit cherry-pick -s - &&\n'> 
            <'\techo "Signed-off-by: C O Mitter <committer@example.com>" >expect &&\n'> <'\tgit cat-file commit HEAD | grep ^Signed-off-by: >signoff &&\n'> <'\ttest_cmp expect signoff &&\n'> 
            <'\techo change >expect &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)