(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)}) ] )