[PATCH v5 1/7] reset: do not accept a mixed reset in a .git dir
- From
Christian Couder <chriscool@tuxfamily.org>
- Date
- Dec 12, 2009, 04:32 UTC
- Message-ID
- <20091212043259.3930.98779.chriscool@tuxfamily.org>
- In-Reply-To
- <20091212042042.3930.54783.chriscool@tuxfamily.org>
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@tuxfamily.org> --- 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