(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'checkout must not overwrite an untracked objects' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:17))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\tmkdir -p a/b/c &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\t>a/b/c/d &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit add -A &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -m base &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit tag start\n' span_id:27) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create a commit where dir a/b changed to file' span_id:34))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:38) (Token id:Id.Lit_Chars val:'\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgit checkout -b file &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\trm -rf a/b &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\t>a/b &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tgit add -A &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\tgit commit -m "dir to file"\n' span_id:44) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'checkout commit with dir must not remove untracked a/b' span_id: 51 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:55) (Token id:Id.Lit_Chars val:'\n' span_id:56) (Token id:Id.Lit_Chars val:'\tgit rm --cached a/b &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tgit commit -m "un-track the file" &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout start &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\ttest -f a/b\n' span_id:60) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create a commit where dir a/b changed to symlink' span_id:67))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:71) (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id: Id.Lit_Chars val: '\trm -rf a/b &&\t# cleanup if previous test failed\n' span_id: 73 ) (Token id:Id.Lit_Chars val:'\tgit checkout -f -b symlink start &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\trm -rf a/b &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit add -A &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\ttest_ln_s_add foo a/b &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit commit -m "dir to symlink"\n' span_id:78) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'checkout commit with dir must not remove untracked a/b' span_id: 85 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:89) (Token id:Id.Lit_Chars val:'\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit rm --cached a/b &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tgit commit -m "un-track the symlink" &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout start\n' span_id:93) ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ (Token id:Id.Lit_Chars val:'the symlink remained' span_id:102))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) (Token id:Id.Lit_Chars val:'\n' span_id:107) (Token id:Id.Lit_Chars val:'\ttest -h a/b\n' span_id:108) ) } ) (C {(test_done)}) ] )