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.
52 lines
1.2 KiB
52 lines
1.2 KiB
#!/bin/sh |
|
|
|
test_description='sparse checkout scope tests' |
|
|
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
echo "initial" >a && |
|
echo "initial" >b && |
|
echo "initial" >c && |
|
git add a b c && |
|
git commit -m "initial commit" |
|
' |
|
|
|
test_expect_success 'create feature branch' ' |
|
git checkout -b feature && |
|
echo "modified" >b && |
|
echo "modified" >c && |
|
git add b c && |
|
git commit -m "modification" |
|
' |
|
|
|
test_expect_success 'perform sparse checkout of master' ' |
|
git config --local --bool core.sparsecheckout true && |
|
echo "!/*" >.git/info/sparse-checkout && |
|
echo "/a" >>.git/info/sparse-checkout && |
|
echo "/c" >>.git/info/sparse-checkout && |
|
git checkout master && |
|
test_path_is_file a && |
|
test_path_is_missing b && |
|
test_path_is_file c |
|
' |
|
|
|
test_expect_success 'merge feature branch into sparse checkout of master' ' |
|
git merge feature && |
|
test_path_is_file a && |
|
test_path_is_missing b && |
|
test_path_is_file c && |
|
test "$(cat c)" = "modified" |
|
' |
|
|
|
test_expect_success 'return to full checkout of master' ' |
|
git checkout feature && |
|
echo "/*" >.git/info/sparse-checkout && |
|
git checkout master && |
|
test_path_is_file a && |
|
test_path_is_file b && |
|
test_path_is_file c && |
|
test "$(cat b)" = "modified" |
|
' |
|
|
|
test_done
|
|
|