(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ first &&\n"> second &&\n"> >first &&\n"> secondfile &&\n"> >secondfile &&\n"> ]} ) (FunctionDef check_changes [] (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [VarSub 1]]} ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS .diff_expect]} {[LIT_CHARS -]} ) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --cached]} ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS .cached_expect]} {[LIT_CHARS -]} ) ) (Pipeline (For FILE [{[LIT_OTHER "*"]}]) (List (Com {[LIT_CHARS echo]} {[VarSub FILE] [SQ ]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS cat]} {[VarSub FILE]} ) (Com {[LIT_CHARS return]} ) ) ) ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS .cat_expect]} {[LIT_CHARS -]} ) ) ) ) ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"]]} 0), > ) (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 >secondfile &&\n"> >secondfile &&\n"> secondfile &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >secondfile &&\n"> >secondfile &&\n"> secondfile &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/secondfile b/secondfile\n"][LIT_CHARS "index 1bbba79..44c5b58 100644\n"][LIT_CHARS "--- a/secondfile\n"][LIT_CHARS "+++ b/secondfile\n"][LIT_CHARS "@@ -1 +1,2 @@\n"][LIT_CHARS "-2nd file\n"][LIT_CHARS "+1st line 2nd file\n"][LIT_CHARS "+2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"][LIT_CHARS "3rd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >secondfile &&\n"> ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "first:\n"][LIT_CHARS "1st file\n"][LIT_CHARS "2nd line 1st file\n"][LIT_CHARS "second:\n"][LIT_CHARS "2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/first b/first\n"][LIT_CHARS "deleted file mode 100644\n"][LIT_CHARS "index 8206c22..0000000\n"][LIT_CHARS "--- a/first\n"][LIT_CHARS "+++ /dev/null\n"][LIT_CHARS "@@ -1,2 +0,0 @@\n"][LIT_CHARS "-1st file\n"][LIT_CHARS "-2nd line 1st file\n"][LIT_CHARS "diff --git a/second b/second\n"][LIT_CHARS "deleted file mode 100644\n"][LIT_CHARS "index 1bbba79..0000000\n"][LIT_CHARS "--- a/second\n"][LIT_CHARS "+++ /dev/null\n"][LIT_CHARS "@@ -1 +0,0 @@\n"][LIT_CHARS "-2nd file\n"][LIT_CHARS "diff --git a/secondfile b/secondfile\n"][LIT_CHARS "new file mode 100644\n"][LIT_CHARS "index 0000000..44c5b58\n"][LIT_CHARS "--- /dev/null\n"][LIT_CHARS "+++ b/secondfile\n"][LIT_CHARS "@@ -0,0 +1,2 @@\n"][LIT_CHARS "+1st line 2nd file\n"][LIT_CHARS "+2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ secondfile &&\n"> >secondfile &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/first b/first\n"][LIT_CHARS "deleted file mode 100644\n"][LIT_CHARS "index 8206c22..0000000\n"][LIT_CHARS "--- a/first\n"][LIT_CHARS "+++ /dev/null\n"][LIT_CHARS "@@ -1,2 +0,0 @@\n"][LIT_CHARS "-1st file\n"][LIT_CHARS "-2nd line 1st file\n"][LIT_CHARS "diff --git a/second b/second\n"][LIT_CHARS "deleted file mode 100644\n"][LIT_CHARS "index 1bbba79..0000000\n"][LIT_CHARS "--- a/second\n"][LIT_CHARS "+++ /dev/null\n"][LIT_CHARS "@@ -1 +0,0 @@\n"][LIT_CHARS "-2nd file\n"]]} 0), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ secondfile &&\n"> >secondfile &&\n"> ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"][LIT_CHARS "3rd line in branch2\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >secondfile &&\n"> >secondfile &&\n"> ]} ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .diff_expect]} "> 1), > ) (Com < (FilenameRedirectNode filename={[LIT_CHARS .cached_expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS .cat_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "secondfile:\n"][LIT_CHARS "1st line 2nd file\n"][LIT_CHARS "2nd line 2nd file\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/file1 b/file1\n"][LIT_CHARS "index d00491f..7ed6ff8 100644\n"][LIT_CHARS "--- a/file1\n"][LIT_CHARS "+++ b/file1\n"][LIT_CHARS "@@ -1 +1 @@\n"][LIT_CHARS "-1\n"][LIT_CHARS "+5\n"][LIT_CHARS "diff --git a/file2 b/file2\n"][LIT_CHARS "deleted file mode 100644\n"][LIT_CHARS "index 0cfbf08..0000000\n"][LIT_CHARS "--- a/file2\n"][LIT_CHARS "+++ /dev/null\n"][LIT_CHARS "@@ -1 +0,0 @@\n"][LIT_CHARS "-2\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS cached_expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/file4 b/file4\n"][LIT_CHARS "new file mode 100644\n"][LIT_CHARS "index 0000000..b8626c4\n"][LIT_CHARS "--- /dev/null\n"][LIT_CHARS "+++ b/file4\n"][LIT_CHARS "@@ -0,0 +1 @@\n"][LIT_CHARS "+4\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ">]} {[SQ file1 &&\n"> file2 &&\n"> file3 &&\n"> file4 &&\n"> file1 &&\n"> output &&\n"> output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ sub/file1 &&\n"> sub/file2 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Unstaged changes after reset:\n"][LIT_CHARS "M\tfile2\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file2 &&\n"> output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ secondfile &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ secondfile &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ secondfile &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ secondfile &&\n"> ]} ) (Com {[LIT_CHARS test_done]} ) )