(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-rebase.sh]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS setup]} {[SQ file0 &&\n"> file1 &&\n"> file2 &&\n"> file3 &&\n"> ]}) (FunctionDef test_auto_fixup [] (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[LIT_CHARS base]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS 1]} < (FilenameRedirectNode filename={[LIT_CHARS file1]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS -u]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "fixup! first"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[VarSub 1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rebase]} {[VarSub 2]} {[LIT_CHARS -i]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --oneline]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_line_count]} {[LIT_OTHER "="]} {[LIT_CHARS 3]} {[LIT_CHARS actual]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --exit-code]} {[VarSub 1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 1]} {[LIT_OTHER "="]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS blob]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER ":"] [LIT_CHARS file1]})]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS 1]} {[LIT_OTHER "="]} {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS commit]} {[LIT_CHARS HEAD] [LIT_OTHER "^"]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS first]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) ) ) ) ) ) ) ) ) ) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (FunctionDef test_auto_squash [] (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[LIT_CHARS base]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS 1]} < (FilenameRedirectNode filename={[LIT_CHARS file1]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS -u]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "squash! first"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[VarSub 1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rebase]} {[VarSub 2]} {[LIT_CHARS -i]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --oneline]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_line_count]} {[LIT_OTHER "="]} {[LIT_CHARS 3]} {[LIT_CHARS actual]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --exit-code]} {[VarSub 1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 1]} {[LIT_OTHER "="]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS blob]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER ":"] [LIT_CHARS file1]})]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS 2]} {[LIT_OTHER "="]} {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS commit]} {[LIT_CHARS HEAD] [LIT_OTHER "^"]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS first]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) ) ) ) ) ) ) ) ) ) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file4 &&\n"> file1 &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> file4 &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> actual &&\n"> ]}) (FunctionDef test_auto_commit_flags [] (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[LIT_CHARS base]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS 1]} < (FilenameRedirectNode filename={[LIT_CHARS file1]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS -u]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS --] [VarSub 1]} {[LIT_CHARS first-commit]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[LIT_CHARS final-commit-] [VarSub 1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rebase]} {[LIT_CHARS --autosquash]} {[LIT_CHARS -i]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --oneline]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_line_count]} {[LIT_OTHER "="]} {[LIT_CHARS 3]} {[LIT_CHARS actual]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --exit-code]} {[LIT_CHARS final-commit-] [VarSub 1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 1]} {[LIT_OTHER "="]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS blob]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER ":"] [LIT_CHARS file1]})]]}) (Com {[LIT_CHARS test]} {[VarSub 2]} {[LIT_OTHER "="]} {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS commit]} {[LIT_CHARS HEAD] [LIT_OTHER "^"]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS first]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) ) ) ) ) ) ) ) ) ) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (FunctionDef test_auto_fixup_fixup [] (List (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[LIT_CHARS base]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS 1]} < (FilenameRedirectNode filename={[LIT_CHARS file1]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS -u]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [VarSub 1][LIT_CHARS "! first"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS 2]} < (FilenameRedirectNode filename={[LIT_CHARS file1]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS -u]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [VarSub 1][LIT_CHARS "! "][VarSub 2][LIT_CHARS "! first"]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[DQ [LIT_CHARS final-][VarSub 1][LIT_CHARS -][VarSub 2]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]}) (AndOr OP_AND_IF (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS set_cat_todo_editor]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test_must_fail]} {[LIT_CHARS git]} {[LIT_CHARS rebase]} {[LIT_CHARS --autosquash]} {[LIT_CHARS -i]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "pick "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"]})][LIT_CHARS " first commit\n"][VarSub 1][LIT_CHARS " "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD] [LIT_OTHER "^"]})][LIT_CHARS " "][VarSub 1][LIT_CHARS "! first\n"][VarSub 1][LIT_CHARS " "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD]})][LIT_CHARS " "][VarSub 1][LIT_CHARS "! "][VarSub 2][LIT_CHARS "! first\n"][LIT_CHARS "pick "][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --short]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"]})][LIT_CHARS " second commit\n"]]} 0), > ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expected]} {[LIT_CHARS actual]}) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rebase]} {[LIT_CHARS --autosquash]} {[LIT_CHARS -i]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_OTHER "^"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --oneline]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (Com {[LIT_CHARS test_line_count]} {[LIT_OTHER "="]} {[LIT_CHARS 3]} {[LIT_CHARS actual]}) ) ) ) ) ) ) ) ) ) ) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --exit-code]} {[DQ [LIT_CHARS final-][VarSub 1][LIT_CHARS -][VarSub 2]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 2]} {[LIT_OTHER "="]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS blob]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER ":"] [LIT_CHARS file1]})]]}) (If (Com {[LIT_CHARS test]} {[DQ [VarSub 1]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS fixup]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS 1]} {[LIT_OTHER "="]} {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS commit]} {[LIT_CHARS HEAD] [LIT_OTHER "^"]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS first]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) (Com {[LIT_CHARS test]} {[DQ [VarSub 1]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS squash]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS 3]} {[LIT_OTHER "="]} {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS commit]} {[LIT_CHARS HEAD] [LIT_OTHER "^"]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS first]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}) (ElseTrue) (Com {[LIT_CHARS false]}) ) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> file1 &&\n"> actual &&\n"> ]}) (FunctionDef set_backup_editor [] (List (Com {[LIT_CHARS write_script]} {[LIT_CHARS backup-editor.sh]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "cp \"$1\" .git/backup-\"$(basename \"$1\")\"\n"]} 0), > ) (Com {[LIT_CHARS test_set_editor]} {[DQ [VarSub PWD][LIT_CHARS /backup-editor.sh]]}) ) ) (Com {[LIT_CHARS test_expect_failure]} {[SQ ]} {[SQ fixup &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_done]}) )