(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'git reset in a bare repository' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup non-bare' span_id:17))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) (Token id:Id.Lit_Chars val:'\techo one >file &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\tgit add file &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\tgit commit -m one &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\techo two >file &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -a -m two\n' span_id:26) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"hard" reset requires a worktree' span_id:33))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) (Token id:Id.Lit_Chars val:'\t(cd .git &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t test_must_fail git reset --hard)\n' span_id:39) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"merge" reset requires a worktree' span_id:46))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:50) (Token id:Id.Lit_Chars val:'\t(cd .git &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\t test_must_fail git reset --merge)\n' span_id:52) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"keep" reset requires a worktree' span_id:59))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:63) (Token id:Id.Lit_Chars val:'\t(cd .git &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t test_must_fail git reset --keep)\n' span_id:65) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"mixed" reset is ok' span_id:72))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:76) (Token id:Id.Lit_Chars val:'\t(cd .git && git reset)\n' span_id:77) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"soft" reset is ok' span_id:84))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:88) (Token id:Id.Lit_Chars val:'\t(cd .git && git reset --soft)\n' span_id:89) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'hard reset works with GIT_WORK_TREE' span_id:96))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) (Token id:Id.Lit_Chars val:'\tmkdir worktree &&\n' span_id:101) (Token id: Id.Lit_Chars val: '\tGIT_WORK_TREE=$PWD/worktree GIT_DIR=$PWD/.git git reset --hard &&\n' span_id: 102 ) (Token id:Id.Lit_Chars val:'\ttest_cmp file worktree/file\n' span_id:103) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup bare' span_id:110))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:114) (Token id:Id.Lit_Chars val:'\tgit clone --bare . bare.git &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\tcd bare.git\n' span_id:116) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"hard" reset is not allowed in bare' span_id:123))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) (Token id: Id.Lit_Chars val: '\ttest_must_fail git reset --hard HEAD^\n' span_id: 128 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"merge" reset is not allowed in bare' span_id:135))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id: Id.Lit_Chars val: '\ttest_must_fail git reset --merge HEAD^\n' span_id: 140 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"keep" reset is not allowed in bare' span_id:147))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:151) (Token id: Id.Lit_Chars val: '\ttest_must_fail git reset --keep HEAD^\n' span_id: 152 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"mixed" reset is not allowed in bare' span_id:159))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:163) (Token id: Id.Lit_Chars val: '\ttest_must_fail git reset --mixed HEAD^\n' span_id: 164 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'"soft" reset is allowed in bare' span_id:171))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:175) (Token id:Id.Lit_Chars val:'\tgit reset --soft HEAD^ &&\n' span_id:176) (Token id: Id.Lit_Chars val: '\ttest "$(git show --pretty=format:%s | head -n 1)" = "one"\n' span_id: 177 ) ) } ) (C {(test_done)}) ] )