(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git apply --whitespace=strip and configuration file.\n"> <"\n">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\tmkdir sub &&\n"> <"\techo A >sub/file1 &&\n"> <"\tcp sub/file1 saved &&\n"> <"\tgit add sub/file1 &&\n"> <"\techo \"B \" >sub/file1 &&\n"> <"\tgit diff >patch.file\n"> ) } ) (AndOr children: [ (SimpleCommand words: [{(tr)} {(SQ <_>)} {(SQ <" ">)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(gpatch.file)} spids:[53]) (HereDoc op_id: Redir_DLess fd: -1 body: {("--- file1\t2007-02-21 01:04:24.000000000 -0800\n") ("+++ file1+\t2007-02-21 01:07:44.000000000 -0800\n") ("@@ -1 +1 @@\n") ("-A\n") ("+B_\n") } do_expansion: False here_end: EOF was_filled: True spids: [56] ) ] ) (AndOr children: [ (SimpleCommand words: [{(sed)} {(-e)} {(SQ <"s|file1|sub/&|">)} {(gpatch.file)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(gpatch-sub.file)} spids:[73])] ) (AndOr children: [ (SimpleCommand words: [ {(sed)} {(-e)} {(SQ <"\n"> <"\t/^--- /s|file1|a/sub/&|\n"> <"\t/^+++ /s|file1|b/sub/&|\n">)} {(gpatch.file)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(gpatch-ab-sub.file)} spids: [90] ) ] ) (FuncDef name: check_result body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(grep)} {(DQ (" "))} {(DQ ($ VSub_Number "$1"))})] action: [(C {(echo)} {(DQ ("Eh?"))}) (C {(false)})] spids: [-1 117] ) (if_arm cond: [(C {(grep)} {(B)} {(DQ ($ VSub_Number "$1"))})] action: [(C {(echo)} {(Happy)})] spids: [130 141] ) ] else_action: [(C {(echo)} {(DQ ("Huh?"))}) (C {(false)})] spids: [149 162] ) ] spids: [101] ) spids: [96 100] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(test_expect_success)} {(SQ <"apply --whitespace=strip">)} { (SQ <"\n"> <"\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tgit apply --whitespace=strip patch.file &&\n"> <"\tcheck_result sub/file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply --whitespace=strip from config">)} { (SQ <"\n"> <"\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tgit config apply.whitespace strip &&\n"> <"\tgit apply patch.file &&\n"> <"\tcheck_result sub/file1\n"> ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:D) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub "$("> spids: [205 207] ) } spids: [204] ) ] spids: [204] ) (C {(test_expect_success)} {(SQ <"apply --whitespace=strip in subdir">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config --unset-all apply.whitespace &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tcd sub &&\n"> <"\tgit apply --whitespace=strip ../patch.file &&\n"> <"\tcheck_result file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"apply --whitespace=strip from config in subdir">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tcd sub &&\n"> <"\tgit apply ../patch.file &&\n"> <"\tcheck_result file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"same in subdir but with traditional patch input">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tcd sub &&\n"> <"\tgit apply ../gpatch.file &&\n"> <"\tcheck_result file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"same but with traditional patch input of depth 1">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tcd sub &&\n"> <"\tgit apply ../gpatch-sub.file &&\n"> <"\tcheck_result file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"same but with traditional patch input of depth 2">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tcd sub &&\n"> <"\tgit apply ../gpatch-ab-sub.file &&\n"> <"\tcheck_result file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"same but with traditional patch input of depth 1">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tgit apply -p0 gpatch-sub.file &&\n"> <"\tcheck_result sub/file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"same but with traditional patch input of depth 2">)} { (SQ <"\n"> <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tgit apply gpatch-ab-sub.file &&\n"> <"\tcheck_result sub/file1\n"> ) } ) (C {(test_expect_success)} {(SQ <"in subdir with traditional patch input">)} { (SQ <"\n"> <"\tcd \"$D\" &&\n"> <"\tgit config apply.whitespace strip &&\n"> <"\tcat >.gitattributes <<-EOF &&\n"> <"\t/* whitespace=blank-at-eol\n"> <"\tsub/* whitespace=-blank-at-eol\n"> <"\tEOF\n"> <"\trm -f sub/file1 &&\n"> <"\tcp saved sub/file1 &&\n"> <"\tgit update-index --refresh &&\n"> <"\n"> <"\tcd sub &&\n"> <"\tgit apply ../gpatch.file &&\n"> <"\techo \"B \" >expect &&\n"> <"\ttest_cmp expect file1\n"> ) } ) (C {(test_done)}) ] )