(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'git apply -p handling.'>)} 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 file1.saved &&\n'> <'\tgit add sub/file1 &&\n'> <'\techo B >sub/file1 &&\n'> <'\tgit diff >patch.file &&\n'> <'\tgit checkout -- sub/file1 &&\n'> <'\tgit mv sub s\xc3\xbcb &&\n'> <'\techo B >s\xc3\xbcb/file1 &&\n'> <'\tgit diff >patch.escaped &&\n'> <'\tgrep "[\\]" patch.escaped &&\n'> <'\trm s\xc3\xbcb/file1 &&\n'> <'\trmdir s\xc3\xbcb\n'> ) } ) (C {(test_expect_success)} {(SQ <'apply git diff with -p2'>)} {(SQ <'\n'> <'\tcp file1.saved file1 &&\n'> <'\tgit apply -p2 patch.file\n'>)} ) (C {(test_expect_success)} {(SQ <'apply with too large -p'>)} { (SQ <'\n'> <'\tcp file1.saved file1 &&\n'> <'\ttest_must_fail git apply --stat -p3 patch.file 2>err &&\n'> <'\ttest_i18ngrep "removing 3 leading" err\n'> ) } ) (C {(test_expect_success)} {(SQ <'apply (-p2) traditional diff with funny filenames'>)} { (SQ <'\n'> <'\tcat >patch.quotes <<-\\EOF &&\n'> <'\tdiff -u "a/"sub/file1 "b/"sub/file1\n'> <'\t--- "a/"sub/file1\n'> <'\t+++ "b/"sub/file1\n'> <'\t@@ -1 +1 @@\n'> <'\t-A\n'> <'\t+B\n'> <'\tEOF\n'> <'\techo B >expected &&\n'> <'\n'> <'\tcp file1.saved file1 &&\n'> <'\tgit apply -p2 patch.quotes &&\n'> <'\ttest_cmp expected file1\n'> ) } ) (C {(test_expect_success)} {(SQ <'apply with too large -p and fancy filename'>)} { (SQ <'\n'> <'\tcp file1.saved file1 &&\n'> <'\ttest_must_fail git apply --stat -p3 patch.escaped 2>err &&\n'> <'\ttest_i18ngrep "removing 3 leading" err\n'> ) } ) (C {(test_expect_success)} {(SQ <'apply (-p2) diff, mode change only'>)} { (SQ <'\n'> <'\tcat >patch.chmod <<-\\EOF &&\n'> <'\tdiff --git a/sub/file1 b/sub/file1\n'> <'\told mode 100644\n'> <'\tnew mode 100755\n'> <'\tEOF\n'> <'\ttest_chmod -x file1 &&\n'> <'\tgit apply --index -p2 patch.chmod &&\n'> <'\tcase $(git ls-files -s file1) in 100755*) : good;; *) false;; esac\n'> ) } ) (C {(test_expect_success)} {(FILEMODE)} {(SQ <'file mode was changed'>)} {(SQ <'\n'> <'\ttest -x file1\n'>)} ) (C {(test_expect_success)} {(SQ <'apply (-p2) diff, rename'>)} { (SQ <'\n'> <'\tcat >patch.rename <<-\\EOF &&\n'> <'\tdiff --git a/sub/file1 b/sub/file2\n'> <'\tsimilarity index 100%\n'> <'\trename from sub/file1\n'> <'\trename to sub/file2\n'> <'\tEOF\n'> <'\techo A >expected &&\n'> <'\n'> <'\tcp file1.saved file1 &&\n'> <'\trm -f file2 &&\n'> <'\tgit apply -p2 patch.rename &&\n'> <'\ttest_cmp expected file2\n'> ) } ) (C {(test_done)}) ] )