(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git apply should not get confused with type changes.\n"> <"\n">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <"setup repository and commits">)} { (SQ <"\n"> <"\techo \"hello world\" > foo &&\n"> <"\techo \"hi planet\" > bar &&\n"> <"\tgit update-index --add foo bar &&\n"> <"\tgit commit -m initial &&\n"> <"\tgit branch initial &&\n"> <"\trm -f foo &&\n"> <"\ttest_ln_s_add bar foo &&\n"> <"\tgit commit -m \"foo symlinked to bar\" &&\n"> <"\tgit branch foo-symlinked-to-bar &&\n"> <"\tgit rm -f foo &&\n"> <"\techo \"how far is the sun?\" > foo &&\n"> <"\tgit update-index --add foo &&\n"> <"\tgit commit -m \"foo back to file\" &&\n"> <"\tgit branch foo-back-to-file &&\n"> <"\tprintf \"\\0\" > foo &&\n"> <"\tgit update-index foo &&\n"> <"\tgit commit -m \"foo becomes binary\" &&\n"> <"\tgit branch foo-becomes-binary &&\n"> <"\trm -f foo &&\n"> <"\tgit update-index --remove foo &&\n"> <"\tmkdir foo &&\n"> <"\techo \"if only I knew\" > foo/baz &&\n"> <"\tgit update-index --add foo/baz &&\n"> <"\tgit commit -m \"foo becomes a directory\" &&\n"> <"\tgit branch \"foo-becomes-a-directory\" &&\n"> <"\techo \"hello world\" > foo/baz &&\n"> <"\tgit update-index foo/baz &&\n"> <"\tgit commit -m \"foo/baz is the original foo\" &&\n"> <"\tgit branch foo-baz-renamed-from-foo\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"file renamed from foo to foo/baz">)} { (SQ <"\n"> <"\tgit checkout -f initial &&\n"> <"\tgit diff-tree -M -p HEAD foo-baz-renamed-from-foo > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"file renamed from foo/baz to foo">)} { (SQ <"\n"> <"\tgit checkout -f foo-baz-renamed-from-foo &&\n"> <"\tgit diff-tree -M -p HEAD initial > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"directory becomes file">)} { (SQ <"\n"> <"\tgit checkout -f foo-becomes-a-directory &&\n"> <"\tgit diff-tree -p HEAD initial > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"file becomes directory">)} { (SQ <"\n"> <"\tgit checkout -f initial &&\n"> <"\tgit diff-tree -p HEAD foo-becomes-a-directory > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"file becomes symlink">)} { (SQ <"\n"> <"\tgit checkout -f initial &&\n"> <"\tgit diff-tree -p HEAD foo-symlinked-to-bar > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"symlink becomes file">)} { (SQ <"\n"> <"\tgit checkout -f foo-symlinked-to-bar &&\n"> <"\tgit diff-tree -p HEAD foo-back-to-file > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"binary file becomes symlink">)} { (SQ <"\n"> <"\tgit checkout -f foo-becomes-binary &&\n"> <"\tgit diff-tree -p --binary HEAD foo-symlinked-to-bar > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"symlink becomes binary file">)} { (SQ <"\n"> <"\tgit checkout -f foo-symlinked-to-bar &&\n"> <"\tgit diff-tree -p --binary HEAD foo-becomes-binary > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"symlink becomes directory">)} { (SQ <"\n"> <"\tgit checkout -f foo-symlinked-to-bar &&\n"> <"\tgit diff-tree -p HEAD foo-becomes-a-directory > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_expect_success)} {(SQ <"directory becomes symlink">)} { (SQ <"\n"> <"\tgit checkout -f foo-becomes-a-directory &&\n"> <"\tgit diff-tree -p HEAD foo-symlinked-to-bar > patch &&\n"> <"\tgit apply --index < patch\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"cat patch">)}) (C {(test_done)}) ] )