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.
69 lines
1.5 KiB
69 lines
1.5 KiB
#!/bin/sh |
|
|
|
test_description='git reset in a bare repository' |
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup non-bare' ' |
|
echo one >file && |
|
git add file && |
|
git commit -m one && |
|
echo two >file && |
|
git commit -a -m two |
|
' |
|
|
|
test_expect_success '"hard" reset requires a worktree' ' |
|
(cd .git && |
|
test_must_fail git reset --hard) |
|
' |
|
|
|
test_expect_success '"merge" reset requires a worktree' ' |
|
(cd .git && |
|
test_must_fail git reset --merge) |
|
' |
|
|
|
test_expect_success '"keep" reset requires a worktree' ' |
|
(cd .git && |
|
test_must_fail git reset --keep) |
|
' |
|
|
|
test_expect_success '"mixed" reset is ok' ' |
|
(cd .git && git reset) |
|
' |
|
|
|
test_expect_success '"soft" reset is ok' ' |
|
(cd .git && git reset --soft) |
|
' |
|
|
|
test_expect_success 'hard reset works with GIT_WORK_TREE' ' |
|
mkdir worktree && |
|
GIT_WORK_TREE=$PWD/worktree GIT_DIR=$PWD/.git git reset --hard && |
|
test_cmp file worktree/file |
|
' |
|
|
|
test_expect_success 'setup bare' ' |
|
git clone --bare . bare.git && |
|
cd bare.git |
|
' |
|
|
|
test_expect_success '"hard" reset is not allowed in bare' ' |
|
test_must_fail git reset --hard HEAD^ |
|
' |
|
|
|
test_expect_success '"merge" reset is not allowed in bare' ' |
|
test_must_fail git reset --merge HEAD^ |
|
' |
|
|
|
test_expect_success '"keep" reset is not allowed in bare' ' |
|
test_must_fail git reset --keep HEAD^ |
|
' |
|
|
|
test_expect_success '"mixed" reset is not allowed in bare' ' |
|
test_must_fail git reset --mixed HEAD^ |
|
' |
|
|
|
test_expect_success '"soft" reset is allowed in bare' ' |
|
git reset --soft HEAD^ && |
|
test "$(git show --pretty=format:%s | head -n 1)" = "one" |
|
' |
|
|
|
test_done
|
|
|