It is strange and fragile that a mixed reset is disallowed in a bare repo but is allowed in a .git dir. So this patch simplifies things by only allowing soft resets when not in a working tree. This patch is also needed to speed up "git reset" by using unpack_tree() directly (instead of execing "git read-tree"). A following patch will do just that. Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- builtin-reset.c | 3 +-- t/t7103-reset-bare.sh | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/builtin-reset.c b/builtin-reset.c index 11d1c6e..14bdb03 100644 --- a/builtin-reset.c +++ b/builtin-reset.c @@ -286,8 +286,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix) if (reset_type == NONE) reset_type = MIXED; /* by default */ - if ((reset_type == HARD || reset_type == MERGE) - && !is_inside_work_tree()) + if (reset_type != SOFT && !is_inside_work_tree()) die("%s reset requires a work tree", reset_type_names[reset_type]); diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh index 68041df..13344b2 100755 --- a/t/t7103-reset-bare.sh +++ b/t/t7103-reset-bare.sh @@ -21,8 +21,8 @@ test_expect_success 'merge reset requires a worktree' ' test_must_fail git reset --merge) ' -test_expect_success 'mixed reset is ok' ' - (cd .git && git reset) +test_expect_success 'mixed reset requires a worktree' ' + (cd .git && test_must_fail git reset) ' test_expect_success 'soft reset is ok' ' -- 1.6.6.rc1.8.gd33ec -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html