(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git rebase --merge --skip tests">)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <"\n"> <"\techo hello > hello &&\n"> <"\tgit add hello &&\n"> 
          <"\tgit commit -m \"hello\" &&\n"> <"\tgit branch skip-reference &&\n"> <"\n"> <"\techo world >> hello &&\n"> 
          <"\tgit commit -a -m \"hello world\" &&\n"> <"\techo goodbye >> hello &&\n"> <"\tgit commit -a -m \"goodbye\" &&\n"> <"\n"> 
          <"\tgit checkout -f skip-reference &&\n"> <"\techo moo > hello &&\n"> <"\tgit commit -a -m \"we should skip this\" &&\n"> 
          <"\techo moo > cow &&\n"> <"\tgit add cow &&\n"> <"\tgit commit -m \"this should not be skipped\" &&\n"> 
          <"\tgit branch pre-rebase skip-reference &&\n"> <"\tgit branch skip-merge skip-reference\n"> <"\t">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase with git am -3 (default)">)} 
      {(SQ <"\n"> <"\ttest_must_fail git rebase master\n">)}
    )
    (C {(test_expect_success)} {(SQ <"rebase --skip can not be used with other options">)} 
      {
        (SQ <"\n"> <"\ttest_must_fail git rebase -v --skip &&\n"> 
          <"\ttest_must_fail git rebase --skip -v\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase --skip with am -3">)} 
      {(SQ <"\n"> <"\tgit rebase --skip\n"> <"\t">)}
    )
    (C {(test_expect_success)} {(SQ <"rebase moves back to skip-reference">)} 
      {
        (SQ <"\n"> <"\ttest refs/heads/skip-reference = $(git symbolic-ref HEAD) &&\n"> 
          <"\tgit branch post-rebase &&\n"> <"\tgit reset --hard pre-rebase &&\n"> <"\ttest_must_fail git rebase master &&\n"> 
          <"\techo \"hello\" > hello &&\n"> <"\tgit add hello &&\n"> <"\tgit rebase --continue &&\n"> 
          <"\ttest refs/heads/skip-reference = $(git symbolic-ref HEAD) &&\n"> <"\tgit reset --hard post-rebase\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"checkout skip-merge">)} {(SQ <"git checkout -f skip-merge">)})
    (C {(test_expect_success)} {(SQ <"rebase with --merge">)} 
      {(SQ <"\n"> <"\ttest_must_fail git rebase --merge master\n">)}
    )
    (C {(test_expect_success)} {(SQ <"rebase --skip with --merge">)} 
      {(SQ <"\n"> <"\tgit rebase --skip\n">)}
    )
    (C {(test_expect_success)} {(SQ <"merge and reference trees equal">)} 
      {(SQ <"\n"> <"\ttest -z \"$(git diff-tree skip-merge skip-reference)\"\n">)}
    )
    (C {(test_expect_success)} {(SQ <"moved back to branch correctly">)} 
      {(SQ <"\n"> <"\ttest refs/heads/skip-merge = $(git symbolic-ref HEAD)\n">)}
    )
    (C {(test_debug)} {(SQ <"gitk --all & sleep 1">)})
    (C {(test_done)})
  ]
)