| test_description='checkout from unborn branch' |
| test_expect_success 'setup' ' |
| git fetch parent master:origin |
| test_expect_success 'checkout from unborn preserves untracked files' ' |
| test_must_fail git checkout -b new origin && |
| test_expect_success 'checkout from unborn preserves index contents' ' |
| test_must_fail git checkout -b new origin && |
| test_expect_success 'checkout from unborn merges identical index contents' ' |
| git checkout -b new origin |
| test_expect_success 'checking out another branch from unborn state' ' |
| git checkout --orphan newroot && |
| git checkout -b anothername && |
| test_must_fail git show-ref --verify refs/heads/newroot && |
| git symbolic-ref HEAD >actual && |
| echo refs/heads/anothername >expect && |
| test_expect_success 'checking out in a newly created repo' ' |
| test_create_repo empty && |
| git symbolic-ref HEAD >expect && |
| test_must_fail git checkout && |
| git symbolic-ref HEAD >actual && |