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.
90 lines
2.0 KiB
90 lines
2.0 KiB
#!/bin/sh |
|
|
|
test_description='update-index with options' |
|
|
|
TEST_PASSES_SANITIZE_LEAK=true |
|
. ./test-lib.sh |
|
|
|
test_expect_success basics ' |
|
>one && |
|
>two && |
|
>three && |
|
|
|
# need --add when adding |
|
test_must_fail git update-index one && |
|
test -z "$(git ls-files)" && |
|
git update-index --add one && |
|
test zone = "z$(git ls-files)" && |
|
|
|
# update-index is atomic |
|
echo 1 >one && |
|
test_must_fail git update-index one two && |
|
echo "M one" >expect && |
|
git diff-files --name-status >actual && |
|
test_cmp expect actual && |
|
|
|
git update-index --add one two three && |
|
test_write_lines one three two >expect && |
|
git ls-files >actual && |
|
test_cmp expect actual && |
|
|
|
test_tick && |
|
( |
|
test_create_repo xyzzy && |
|
cd xyzzy && |
|
>file && |
|
git add file && |
|
git commit -m "sub initial" |
|
) && |
|
git add xyzzy && |
|
|
|
test_tick && |
|
git commit -m initial && |
|
git tag initial |
|
' |
|
|
|
test_expect_success '--ignore-missing --refresh' ' |
|
git reset --hard initial && |
|
echo 2 >one && |
|
test_must_fail git update-index --refresh && |
|
echo 1 >one && |
|
git update-index --refresh && |
|
rm -f two && |
|
test_must_fail git update-index --refresh && |
|
git update-index --ignore-missing --refresh |
|
|
|
' |
|
|
|
test_expect_success '--unmerged --refresh' ' |
|
git reset --hard initial && |
|
info=$(git ls-files -s one | sed -e "s/ 0 / 1 /") && |
|
git rm --cached one && |
|
echo "$info" | git update-index --index-info && |
|
test_must_fail git update-index --refresh && |
|
git update-index --unmerged --refresh && |
|
echo 2 >two && |
|
test_must_fail git update-index --unmerged --refresh >actual && |
|
grep two actual && |
|
! grep one actual && |
|
! grep three actual |
|
' |
|
|
|
test_expect_success '--ignore-submodules --refresh (1)' ' |
|
git reset --hard initial && |
|
rm -f two && |
|
test_must_fail git update-index --ignore-submodules --refresh |
|
' |
|
|
|
test_expect_success '--ignore-submodules --refresh (2)' ' |
|
git reset --hard initial && |
|
test_tick && |
|
( |
|
cd xyzzy && |
|
git commit -m "sub second" --allow-empty |
|
) && |
|
test_must_fail git update-index --refresh && |
|
test_must_fail git update-index --ignore-missing --refresh && |
|
git update-index --ignore-submodules --refresh |
|
' |
|
|
|
test_done
|
|
|