(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 switching away from an invalid branch' span_id: 6 ) ) } spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\techo hello >world &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\tgit add world &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit commit -m initial\n' span_id:25) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout should not start branch from a tree' span_id:32))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:36) (Token id: Id.Lit_Chars val: '\ttest_must_fail git checkout -b newbranch master^{tree}\n' span_id: 37 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout master from invalid HEAD' span_id:44))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:48) (Token id:Id.Lit_Chars val:'\techo $_z40 >.git/HEAD &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit checkout master --\n' span_id:50) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout notices failure to lock HEAD' span_id:57))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:61) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm -f .git/HEAD.lock" &&\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\t>.git/HEAD.lock &&\n' span_id:63) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout -b other\n' span_id:64) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'create ref directory/file conflict scenario' span_id:71))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id: Id.Lit_Chars val: '\tgit update-ref refs/heads/outer/inner master &&\n' span_id: 76 ) (Token id:Id.Lit_Chars val:'\n' span_id:77) (Token id: Id.Lit_Chars val: '\t# do not rely on symbolic-ref to get a known state,\n' span_id: 78 ) (Token id:Id.Lit_Chars val:'\t# as it may use the same code we are testing\n' span_id:79) (Token id:Id.Lit_Chars val:'\treset_to_df () {\n' span_id:80) (Token id:Id.Lit_Chars val:'\t\techo "ref: refs/heads/outer" >.git/HEAD\n' span_id:81) (Token id:Id.Lit_Chars val:'\t}\n' span_id:82) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'checkout away from d/f HEAD (unpacked, to branch)' span_id: 89 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) (Token id:Id.Lit_Chars val:'\treset_to_df &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\tgit checkout master\n' span_id:95) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'checkout away from d/f HEAD (unpacked, to detached)' span_id: 102 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) (Token id:Id.Lit_Chars val:'\treset_to_df &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit checkout --detach master\n' span_id:108) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'pack refs' span_id:115))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) (Token id:Id.Lit_Chars val:'\tgit pack-refs --all --prune\n' span_id:120) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout away from d/f HEAD (packed, to branch)' span_id:127))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:131) (Token id:Id.Lit_Chars val:'\treset_to_df &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\tgit checkout master\n' span_id:133) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'checkout away from d/f HEAD (packed, to detached)' span_id: 140 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:144) (Token id:Id.Lit_Chars val:'\treset_to_df &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\tgit checkout --detach master\n' span_id:146) ) } ) (C {(test_done)}) ] )