(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git rebase --continue tests">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ VSub_Name "$TEST_DIRECTORY")) (/lib-rebase.sh)})
    (C {(set_fake_editor)})
    (C {(test_expect_success)} {(SQ <setup>)} 
      {
        (SQ <"\n"> <"\ttest_commit \"commit-new-file-F1\" F1 1 &&\n"> 
          <"\ttest_commit \"commit-new-file-F2\" F2 2 &&\n"> <"\n"> <"\tgit checkout -b topic HEAD^ &&\n"> 
          <"\ttest_commit \"commit-new-file-F2-on-topic-branch\" F2 22 &&\n"> <"\n"> <"\tgit checkout master\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"interactive rebase --continue works with touched file">)} 
      {
        (SQ <"\n"> <"\trm -fr .git/rebase-* &&\n"> <"\tgit reset --hard &&\n"> 
          <"\tgit checkout master &&\n"> <"\n"> <"\tFAKE_LINES=\"edit 1\" git rebase -i HEAD^ &&\n"> <"\ttest-chmtime =-60 F1 &&\n"> 
          <"\tgit rebase --continue\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"non-interactive rebase --continue works with touched file">)} 
      {
        (SQ <"\n"> <"\trm -fr .git/rebase-* &&\n"> <"\tgit reset --hard &&\n"> 
          <"\tgit checkout master &&\n"> <"\n"> <"\ttest_must_fail git rebase --onto master master topic &&\n"> <"\techo \"Resolved\" >F2 &&\n"> 
          <"\tgit add F2 &&\n"> <"\ttest-chmtime =-60 F1 &&\n"> <"\tgit rebase --continue\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"non-interactive rebase --continue with rerere enabled">)} 
      {
        (SQ <"\n"> <"\ttest_config rerere.enabled true &&\n"> 
          <"\ttest_when_finished \"test_might_fail git rebase --abort\" &&\n"> <"\tgit reset --hard commit-new-file-F2-on-topic-branch &&\n"> <"\tgit checkout master &&\n"> 
          <"\trm -fr .git/rebase-* &&\n"> <"\n"> <"\ttest_must_fail git rebase --onto master master topic &&\n"> <"\techo \"Resolved\" >F2 &&\n"> 
          <"\tgit add F2 &&\n"> <"\tcp F2 F2.expected &&\n"> <"\tgit rebase --continue &&\n"> <"\n"> 
          <"\tgit reset --hard commit-new-file-F2-on-topic-branch &&\n"> <"\tgit checkout master &&\n"> <"\ttest_must_fail git rebase --onto master master topic &&\n"> 
          <"\ttest_cmp F2.expected F2\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase --continue can not be used with other options">)} 
      {
        (SQ <"\n"> <"\ttest_must_fail git rebase -v --continue &&\n"> 
          <"\ttest_must_fail git rebase --continue -v\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase --continue remembers merge strategy and options">)} 
      {
        (SQ <"\n"> <"\trm -fr .git/rebase-* &&\n"> 
          <"\tgit reset --hard commit-new-file-F2-on-topic-branch &&\n"> <"\ttest_commit \"commit-new-file-F3-on-topic-branch\" F3 32 &&\n"> 
          <"\ttest_when_finished \"rm -fr test-bin funny.was.run\" &&\n"> <"\tmkdir test-bin &&\n"> <"\tcat >test-bin/git-merge-funny <<-EOF &&\n"> <"\t#!$SHELL_PATH\n"> 
          <"\tcase \"\\$1\" in --opt) ;; *) exit 2 ;; esac\n"> <"\tshift &&\n"> <"\t>funny.was.run &&\n"> <"\texec git merge-recursive \"\\$@\"\n"> <"\tEOF\n"> 
          <"\tchmod +x test-bin/git-merge-funny &&\n"> <"\t(\n"> <"\t\tPATH=./test-bin:$PATH\n"> 
          <"\t\ttest_must_fail git rebase -s funny -Xopt master topic\n"> <"\t) &&\n"> <"\ttest -f funny.was.run &&\n"> <"\trm funny.was.run &&\n"> 
          <"\techo \"Resolved\" >F2 &&\n"> <"\tgit add F2 &&\n"> <"\t(\n"> <"\t\tPATH=./test-bin:$PATH\n"> <"\t\tgit rebase --continue\n"> 
          <"\t) &&\n"> <"\ttest -f funny.was.run\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"rebase --continue remembers --rerere-autoupdate">)} 
      {
        (SQ <"\n"> <"\trm -fr .git/rebase-* &&\n"> 
          <"\tgit reset --hard commit-new-file-F3-on-topic-branch &&\n"> <"\tgit checkout master &&\n"> <"\ttest_commit \"commit-new-file-F3\" F3 3 &&\n"> 
          <"\tgit config rerere.enabled true &&\n"> <"\ttest_must_fail git rebase -m master topic &&\n"> <"\techo \"Resolved\" >F2 &&\n"> 
          <"\tgit add F2 &&\n"> <"\ttest_must_fail git rebase --continue &&\n"> <"\techo \"Resolved\" >F3 &&\n"> <"\tgit add F3 &&\n"> 
          <"\tgit rebase --continue &&\n"> <"\tgit reset --hard topic@{1} &&\n"> 
          <"\ttest_must_fail git rebase -m --rerere-autoupdate master &&\n"> <"\ttest \"$(cat F2)\" = \"Resolved\" &&\n"> <"\ttest_must_fail git rebase --continue &&\n"> 
          <"\ttest \"$(cat F3)\" = \"Resolved\" &&\n"> <"\tgit rebase --continue\n">
        )
      }
    )
    (C {(test_done)})
  ]
)