You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
#!/bin/sh |
|
|
|
test_description='checkout from unborn branch' |
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
mkdir parent && |
|
(cd parent && |
|
git init && |
|
echo content >file && |
|
git add file && |
|
git commit -m base |
|
) && |
|
git fetch parent master:origin |
|
' |
|
|
|
test_expect_success 'checkout from unborn preserves untracked files' ' |
|
echo precious >expect && |
|
echo precious >file && |
|
test_must_fail git checkout -b new origin && |
|
test_cmp expect file |
|
' |
|
|
|
test_expect_success 'checkout from unborn preserves index contents' ' |
|
echo precious >expect && |
|
echo precious >file && |
|
git add file && |
|
test_must_fail git checkout -b new origin && |
|
test_cmp expect file && |
|
git show :file >file && |
|
test_cmp expect file |
|
' |
|
|
|
test_expect_success 'checkout from unborn merges identical index contents' ' |
|
echo content >file && |
|
git add file && |
|
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_cmp expect actual |
|
' |
|
|
|
test_expect_success 'checking out in a newly created repo' ' |
|
test_create_repo empty && |
|
( |
|
cd empty && |
|
git symbolic-ref HEAD >expect && |
|
test_must_fail git checkout && |
|
git symbolic-ref HEAD >actual && |
|
test_cmp expect actual |
|
) |
|
' |
|
|
|
test_done
|
|
|