(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (FunctionDef commit_msg [] (List (= scope= flags=0 words=[] bindings=[('msg', {[DQ [LIT_CHARS "modify 2nd file (ge"][\ LIT_ESCAPED_CHAR "\\3"][LIT_CHARS 03][\ LIT_ESCAPED_CHAR "\\2"][LIT_CHARS "44ndert)"][\ LIT_ESCAPED_CHAR "\\n"]]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub 1]]}) (Pipeline (Com {[LIT_CHARS printf]} {[DQ [VarSub msg]]}) (Com {[LIT_CHARS iconv]} {[LIT_CHARS -f]} {[LIT_CHARS utf-8]} {[LIT_CHARS -t]} {[DQ [VarSub 1]]}) ) (ElseTrue) (Com {[LIT_CHARS printf]} {[DQ [VarSub msg]]}) ) ) ) (= scope= flags=0 words=[] bindings=[('test_encoding', {[DQ [LIT_CHARS ISO8859-1]]})]) (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_OTHER "="]} {[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 {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ .actual &&\n"> .expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ .actual &&\n"> .expected &&\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 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_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ new-file &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )