(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'checkout switching away from an invalid branch'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <'\n'> <'\techo hello >world &&\n'> <'\tgit add world &&\n'> <'\tgit commit -m initial\n'>) } ) (C {(test_expect_success)} {(SQ <'checkout should not start branch from a tree'>)} {(SQ <'\n'> <'\ttest_must_fail git checkout -b newbranch master^{tree}\n'>)} ) (C {(test_expect_success)} {(SQ <'checkout master from invalid HEAD'>)} {(SQ <'\n'> <'\techo $_z40 >.git/HEAD &&\n'> <'\tgit checkout master --\n'>)} ) (C {(test_expect_success)} {(SQ <'checkout notices failure to lock HEAD'>)} { (SQ <'\n'> <'\ttest_when_finished "rm -f .git/HEAD.lock" &&\n'> <'\t>.git/HEAD.lock &&\n'> <'\ttest_must_fail git checkout -b other\n'> ) } ) (C {(test_expect_success)} {(SQ <'create ref directory/file conflict scenario'>)} { (SQ <'\n'> <'\tgit update-ref refs/heads/outer/inner master &&\n'> <'\n'> <'\t# do not rely on symbolic-ref to get a known state,\n'> <'\t# as it may use the same code we are testing\n'> <'\treset_to_df () {\n'> <'\t\techo "ref: refs/heads/outer" >.git/HEAD\n'> <'\t}\n'> ) } ) (C {(test_expect_success)} {(SQ <'checkout away from d/f HEAD (unpacked, to branch)'>)} {(SQ <'\n'> <'\treset_to_df &&\n'> <'\tgit checkout master\n'>)} ) (C {(test_expect_success)} {(SQ <'checkout away from d/f HEAD (unpacked, to detached)'>)} {(SQ <'\n'> <'\treset_to_df &&\n'> <'\tgit checkout --detach master\n'>)} ) (C {(test_expect_success)} {(SQ <'pack refs'>)} {(SQ <'\n'> <'\tgit pack-refs --all --prune\n'>)}) (C {(test_expect_success)} {(SQ <'checkout away from d/f HEAD (packed, to branch)'>)} {(SQ <'\n'> <'\treset_to_df &&\n'> <'\tgit checkout master\n'>)} ) (C {(test_expect_success)} {(SQ <'checkout away from d/f HEAD (packed, to detached)'>)} {(SQ <'\n'> <'\treset_to_df &&\n'> <'\tgit checkout --detach master\n'>)} ) (C {(test_done)}) ] )