(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'git reset in a bare repository'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <'setup non-bare'>)} { (SQ <'\n'> <'\techo one >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m one &&\n'> <'\techo two >file &&\n'> <'\tgit commit -a -m two\n'> ) } ) (C {(test_expect_success)} {(SQ <'"hard" reset requires a worktree'>)} {(SQ <'\n'> <'\t(cd .git &&\n'> <'\t test_must_fail git reset --hard)\n'>)} ) (C {(test_expect_success)} {(SQ <'"merge" reset requires a worktree'>)} {(SQ <'\n'> <'\t(cd .git &&\n'> <'\t test_must_fail git reset --merge)\n'>)} ) (C {(test_expect_success)} {(SQ <'"keep" reset requires a worktree'>)} {(SQ <'\n'> <'\t(cd .git &&\n'> <'\t test_must_fail git reset --keep)\n'>)} ) (C {(test_expect_success)} {(SQ <'"mixed" reset is ok'>)} {(SQ <'\n'> <'\t(cd .git && git reset)\n'>)} ) (C {(test_expect_success)} {(SQ <'"soft" reset is ok'>)} {(SQ <'\n'> <'\t(cd .git && git reset --soft)\n'>)} ) (C {(test_expect_success)} {(SQ <'hard reset works with GIT_WORK_TREE'>)} { (SQ <'\n'> <'\tmkdir worktree &&\n'> <'\tGIT_WORK_TREE=$PWD/worktree GIT_DIR=$PWD/.git git reset --hard &&\n'> <'\ttest_cmp file worktree/file\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup bare'>)} {(SQ <'\n'> <'\tgit clone --bare . bare.git &&\n'> <'\tcd bare.git\n'>)} ) (C {(test_expect_success)} {(SQ <'"hard" reset is not allowed in bare'>)} {(SQ <'\n'> <'\ttest_must_fail git reset --hard HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'"merge" reset is not allowed in bare'>)} {(SQ <'\n'> <'\ttest_must_fail git reset --merge HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'"keep" reset is not allowed in bare'>)} {(SQ <'\n'> <'\ttest_must_fail git reset --keep HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'"mixed" reset is not allowed in bare'>)} {(SQ <'\n'> <'\ttest_must_fail git reset --mixed HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'"soft" reset is allowed in bare'>)} { (SQ <'\n'> <'\tgit reset --soft HEAD^ &&\n'> <'\ttest "$(git show --pretty=format:%s | head -n 1)" = "one"\n'> ) } ) (C {(test_done)}) ] )