(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 rebase with its hook(s)'>)}
        )
      ]
      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'> <'\techo hello >file &&\n'> <'\tgit add file &&\n'> <'\ttest_tick &&\n'> 
            <'\tgit commit -m initial &&\n'> <'\techo goodbye >file &&\n'> <'\tgit add file &&\n'> <'\ttest_tick &&\n'> 
            <'\tgit commit -m second &&\n'> <'\tgit checkout -b side HEAD^ &&\n'> <'\techo world >git &&\n'> <'\tgit add git &&\n'> 
            <'\ttest_tick &&\n'> <'\tgit commit -m side &&\n'> <'\tgit checkout master &&\n'> 
            <'\tgit log --pretty=oneline --abbrev-commit --graph --all &&\n'> <'\tgit branch test side\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <rebase>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tgit rebase master &&\n'> <'\ttest "z$(cat git)" = zworld\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rebase -i'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tEDITOR=true git rebase -i master &&\n'> <'\ttest "z$(cat git)" = zworld\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup pre-rebase hook'>)}
        {
          (SQ <'\n'> <'\tmkdir -p .git/hooks &&\n'> <'\tcat >.git/hooks/pre-rebase <<EOF &&\n'> 
            <'#!$SHELL_PATH\n'> <'echo "\\$1,\\$2" >.git/PRE-REBASE-INPUT\n'> <'EOF\n'> <'\tchmod +x .git/hooks/pre-rebase\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook gets correct input (1)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tgit rebase master &&\n'> <'\ttest "z$(cat git)" = zworld &&\n'> <'\ttest "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook gets correct input (2)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tgit rebase master test &&\n'> <'\ttest "z$(cat git)" = zworld &&\n'> <'\ttest "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook gets correct input (3)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tgit checkout master &&\n'> <'\tgit rebase master test &&\n'> <'\ttest "z$(cat git)" = zworld &&\n'> 
            <'\ttest "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook gets correct input (4)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tEDITOR=true git rebase -i master &&\n'> <'\ttest "z$(cat git)" = zworld &&\n'> <'\ttest "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,\n'> <'\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook gets correct input (5)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tEDITOR=true git rebase -i master test &&\n'> <'\ttest "z$(cat git)" = zworld &&\n'> <'\ttest "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook gets correct input (6)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tgit checkout master &&\n'> <'\tEDITOR=true git rebase -i master test &&\n'> <'\ttest "z$(cat git)" = zworld &&\n'> 
            <'\ttest "z$(cat .git/PRE-REBASE-INPUT)" = zmaster,test\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup pre-rebase hook that fails'>)}
        {
          (SQ <'\n'> <'\tmkdir -p .git/hooks &&\n'> <'\tcat >.git/hooks/pre-rebase <<EOF &&\n'> 
            <'#!$SHELL_PATH\n'> <'false\n'> <'EOF\n'> <'\tchmod +x .git/hooks/pre-rebase\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook stops rebase (1)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\ttest_must_fail git rebase master &&\n'> <'\ttest "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&\n'> 
            <'\ttest 0 = $(git rev-list HEAD...side | wc -l)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'pre-rebase hook stops rebase (2)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\ttest_must_fail env EDITOR=: git rebase -i master &&\n'> <'\ttest "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&\n'> 
            <'\ttest 0 = $(git rev-list HEAD...side | wc -l)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rebase --no-verify overrides pre-rebase (1)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tgit rebase --no-verify master &&\n'> <'\ttest "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&\n'> <'\ttest "z$(cat git)" = zworld\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'rebase --no-verify overrides pre-rebase (2)'>)}
        {
          (SQ <'\n'> <'\tgit checkout test &&\n'> <'\tgit reset --hard side &&\n'> 
            <'\tEDITOR=true git rebase --no-verify -i master &&\n'> <'\ttest "z$(git symbolic-ref HEAD)" = zrefs/heads/test &&\n'> <'\ttest "z$(cat git)" = zworld\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)