(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/heads/master\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (= scope= flags=0 words=[] bindings=[('commit4', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS refs/heads/master]})]})]) (= scope= flags=0 words=[] bindings=[('commit3', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[DQ [VarSub commit4][LIT_CHARS "^"]]})]})]) (= scope= flags=0 words=[] bindings=[('commit2', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[DQ [VarSub commit4][LIT_CHARS "~2"]]})]})]) (= scope= flags=0 words=[] bindings=[('commit1', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[DQ [VarSub commit4][LIT_CHARS "~3"]]})]})]) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/test\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " fourth commit\n"][LIT_CHARS " third commit\n"][LIT_CHARS " second commit\n"][LIT_CHARS " first note for second commit\n"][LIT_CHARS " first commit\n"][LIT_CHARS " first note for first commit\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "feature notes\n"][LIT_CHARS "commit refs/notes/test\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " fourth commit\n"][LIT_CHARS " first note for fourth commit\n"][LIT_CHARS " third commit\n"][LIT_CHARS " first note for third commit\n"][LIT_CHARS " second commit\n"][LIT_CHARS " first note for second commit\n"][LIT_CHARS " first commit\n"][LIT_CHARS " first note for first commit\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/test\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " fourth commit\n"][LIT_CHARS " second note for fourth commit\n"][LIT_CHARS " third commit\n"][LIT_CHARS " second note for third commit\n"][LIT_CHARS " second commit\n"][LIT_CHARS " second note for second commit\n"][LIT_CHARS " first commit\n"][LIT_CHARS " second note for first commit\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/test\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (= scope= flags=0 words=[] bindings=[('whitespace', {[DQ [LIT_CHARS " "]]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " fourth commit\n"][LIT_CHARS " pre-prefix of note for fourth commit\n"][VarSub whitespace][LIT_CHARS "\n"][LIT_CHARS " prefix of note for fourth commit\n"][VarSub whitespace][LIT_CHARS "\n"][LIT_CHARS " third note for fourth commit\n"][LIT_CHARS " third commit\n"][LIT_CHARS " prefix of note for third commit\n"][VarSub whitespace][LIT_CHARS "\n"][LIT_CHARS " third note for third commit\n"][LIT_CHARS " second commit\n"][LIT_CHARS " third note for second commit\n"][LIT_CHARS " first commit\n"][LIT_CHARS " third note for first commit\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/test\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " fourth commit\n"][LIT_CHARS " third commit\n"][LIT_CHARS " second commit\n"][LIT_CHARS " first commit\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/test\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " fourth commit\n"][LIT_CHARS " third commit\n"][LIT_CHARS " fourth note for third commit\n"][LIT_CHARS " second commit\n"][LIT_CHARS " first commit\n"][LIT_CHARS " fourth note for first commit\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (FunctionDef fast_import_commits [] (List (= scope= flags=0 words=[] bindings=[('my_ref', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('my_num_commits', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('my_append_to_file', {[VarSub 3]})]) (= scope= flags=0 words=[] bindings=[('my_i', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS test]} {[VarSub my_i]} {[LIT_CHARS -lt]} {[VarSub my_num_commits]}) (List (= scope= flags=0 words=[] bindings=[('my_i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub my_i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub my_append_to_file]]} >"> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit "][VarSub my_ref][LIT_CHARS "\n"][LIT_CHARS "mark :"][VarSub my_i][LIT_CHARS "\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) ) ) ) ) (FunctionDef fast_import_notes [] (List (= scope= flags=0 words=[] bindings=[('my_notes_ref', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('my_num_commits', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('my_append_to_file', {[VarSub 3]})]) (= scope= flags=0 words=[] bindings=[('my_note_append', {[VarSub 4]})]) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub my_append_to_file]]} >"> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit "][VarSub my_notes_ref][LIT_CHARS "\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (= scope= flags=0 words=[] bindings=[('my_i', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS test]} {[VarSub my_i]} {[LIT_CHARS -lt]} {[VarSub my_num_commits]}) (List (= scope= flags=0 words=[] bindings=[('my_i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub my_i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub my_append_to_file]]} >"> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "N inline :"][VarSub my_i][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) ) ) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS input]} {[LIT_CHARS expect]}) (= scope= flags=0 words=[] bindings=[('num_commits', {[LIT_CHARS 400]})]) (Com {[LIT_CHARS fast_import_commits]} {[DQ [LIT_CHARS refs/heads/many_commits]]} {[VarSub num_commits]} {[LIT_CHARS input]}) (Com {[LIT_CHARS fast_import_notes]} {[DQ [LIT_CHARS refs/notes/many_notes]]} {[VarSub num_commits]} {[LIT_CHARS input]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} >"> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/many_notes\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (= scope= flags=0 words=[] bindings=[('i', {[VarSub num_commits]})]) (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " commit #"][VarSub i][LIT_CHARS "\n"][LIT_CHARS " note for commit #"][VarSub i][LIT_CHARS "\n"]]} 0), > ) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect_non-note1]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "This is not a note, but rather a regular file residing in a notes tree\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect_non-note2]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Non-note file\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect_non-note3]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Another non-note file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/many_notes\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS rm]} {[LIT_CHARS expect]}) (= scope= flags=0 words=[] bindings=[('i', {[VarSub num_commits]})]) (= scope= flags=0 words=[] bindings=[('j', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS test]} {[VarSub j]} {[LIT_CHARS -lt]} {[LIT_CHARS 3]}) (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} >"> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "N inline refs/heads/many_commits~"][VarSub j][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " commit #"][VarSub i][LIT_CHARS "\n"][LIT_CHARS " changed note for commit #"][VarSub i][LIT_CHARS "\n"]]} 0), > ) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (= scope= flags=0 words=[] bindings=[('j', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub j]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (= scope= flags=0 words=[] bindings=[('remaining_notes', {[LIT_CHARS 10]})]) (Com {[LIT_CHARS test_tick]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} "> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "commit refs/notes/many_notes\n"][LIT_CHARS "committer "][VarSub GIT_COMMITTER_NAME][LIT_CHARS " <"][VarSub GIT_COMMITTER_EMAIL][LIT_CHARS "> "][VarSub GIT_COMMITTER_DATE][LIT_CHARS "\n"][LIT_CHARS "data < 0), > ) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub num_commits]}} {A Atom NODE_ARITH_WORD {[VarSub remaining_notes]}}}]})]) (For sha1 [{[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[LIT_CHARS -n]} {[VarSub i]} {[LIT_CHARS refs/heads/many_commits]})]}]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS input]} >"> 1), (HereDocRedirectNode here_end='INPUT_END' do_expansion=True body_word={[DQ [LIT_CHARS "N 0000000000000000000000000000000000000000 "][VarSub sha1][LIT_CHARS "\n"]]} 0), > ) ) (= scope= flags=0 words=[] bindings=[('i', {[VarSub num_commits]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS expect]}) (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " commit #"][VarSub i][LIT_CHARS "\n"]]} 0), > ) (If (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -le]} {[VarSub remaining_notes]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " note for commit #"][VarSub i][LIT_CHARS "\n"]]} 0), > ) ) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS input]} {[LIT_CHARS expect]}) (= scope= flags=0 words=[] bindings=[('num_notes_refs', {[LIT_CHARS 10]})]) (= scope= flags=0 words=[] bindings=[('num_commits', {[LIT_CHARS 16]})]) (= scope= flags=0 words=[] bindings=[('some_commits', {[LIT_CHARS 8]})]) (Com {[LIT_CHARS fast_import_commits]} {[DQ [LIT_CHARS refs/heads/more_commits]]} {[VarSub num_commits]} {[LIT_CHARS input]}) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -lt]} {[VarSub num_notes_refs]}) (List (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS fast_import_notes]} {[DQ [LIT_CHARS refs/notes/more_notes_][VarSub i]]} {[VarSub num_commits]} {[LIT_CHARS input]}) ) ) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -lt]} {[VarSub num_notes_refs]}) (List (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS fast_import_notes]} {[DQ [LIT_CHARS refs/notes/more_notes_][VarSub i]]} {[VarSub some_commits]} {[LIT_CHARS input]} {[DQ [LIT_CHARS " (2)"]]}) ) ) (= scope= flags=0 words=[] bindings=[('i', {[VarSub num_commits]})]) (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (List (= scope= flags=0 words=[] bindings=[('note_data', {[DQ [LIT_CHARS "note for commit #"][VarSub i]]})]) (If (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -le]} {[VarSub some_commits]}) (= scope= flags=0 words=[] bindings=[('note_data', {[DQ [VarSub note_data][LIT_CHARS " (2)"]]})]) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EXPECT_END' do_expansion=True body_word={[DQ [LIT_CHARS " commit #"][VarSub i][LIT_CHARS "\n"][LIT_CHARS " "][VarSub note_data][LIT_CHARS "\n"]]} 0), > ) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "add notes to "][VarSub num_commits][LIT_CHARS " commits in each of "][VarSub num_notes_refs][LIT_CHARS " refs"]]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )