зеркало из https://github.com/microsoft/git.git
37 строки
895 B
Bash
Executable File
37 строки
895 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='check quarantine of objects during push'
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'create picky dest repo' '
|
|
git init --bare dest.git &&
|
|
write_script dest.git/hooks/pre-receive <<-\EOF
|
|
while read old new ref; do
|
|
test "$(git log -1 --format=%s $new)" = reject && exit 1
|
|
done
|
|
exit 0
|
|
EOF
|
|
'
|
|
|
|
test_expect_success 'accepted objects work' '
|
|
test_commit ok &&
|
|
git push dest.git HEAD &&
|
|
commit=$(git rev-parse HEAD) &&
|
|
git --git-dir=dest.git cat-file commit $commit
|
|
'
|
|
|
|
test_expect_success 'rejected objects are not installed' '
|
|
test_commit reject &&
|
|
commit=$(git rev-parse HEAD) &&
|
|
test_must_fail git push dest.git reject &&
|
|
test_must_fail git --git-dir=dest.git cat-file commit $commit
|
|
'
|
|
|
|
test_expect_success 'rejected objects are removed' '
|
|
echo "incoming-*" >expect &&
|
|
(cd dest.git/objects && echo incoming-*) >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_done
|