Re: git reset --hard in .git causes a checkout in that directory
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:50
Jeff King [off-list ref] writes:
Junio, I think the following should go to maint (I didn't bother splitting the --merge and --hard code; --merge is in v1.6.2. I assumed we don't care about maint releases that far back).
Thanks. The test already checks that the change won't break soft reset, which is good, but it does not seem to check/specify what should happen in the mixed reset in this case (I think it should be allowed). Could you add one while at it?
quoted hunk
diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh index 42bf518..3ddf0ac 100755 --- a/t/t7103-reset-bare.sh +++ b/t/t7103-reset-bare.sh@@ -11,6 +11,16 @@ test_expect_success 'setup non-bare' ' 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 'setup bare' ' git clone --bare . bare.git && cd bare.git@@ -20,6 +30,10 @@ test_expect_success 'hard reset is not allowed' ' test_must_fail git reset --hard HEAD^ ' +test_expect_success 'merge reset is not allowed' ' + test_must_fail git reset --merge HEAD^ +' + test_expect_success 'soft reset is allowed' ' git reset --soft HEAD^ && test "`git show --pretty=format:%s | head -n 1`" = "one"-- 1.6.6.rc1.18.ga777f.dirty