aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-01-20 12:22:58 -0800
committerJunio C Hamano <gitster@pobox.com>2010-01-20 12:22:58 -0800
commit806e5c8682c8621b19529c21899dcb14a1035d11 (patch)
treec1fe88e5faa88f61548393583acd89092e7521d7
parent91d23be16767bf820401a6ba9a9397aa146c977a (diff)
parentcd0f0f68e1074e684a014e1714104693097caabc (diff)
downloadgit-806e5c8682c8621b19529c21899dcb14a1035d11.tar.gz
git-806e5c8682c8621b19529c21899dcb14a1035d11.tar.xz
Merge branch 'jk/maint-1.6.5-reset-hard' into maint-1.6.5
* jk/maint-1.6.5-reset-hard: reset: unbreak hard resets with GIT_WORK_TREE
-rw-r--r--builtin-reset.c6
-rwxr-xr-xt/t7103-reset-bare.sh6
2 files changed, 8 insertions, 4 deletions
diff --git a/builtin-reset.c b/builtin-reset.c
index 11d1c6e4d..e4418bced 100644
--- a/builtin-reset.c
+++ b/builtin-reset.c
@@ -286,10 +286,8 @@ 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())
- die("%s reset requires a work tree",
- reset_type_names[reset_type]);
+ if (reset_type == HARD || reset_type == MERGE)
+ setup_work_tree();
/* Soft reset does not touch the index file nor the working tree
* at all, but requires them in a good order. Other resets reset
diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh
index 68041df5f..afb55b3a4 100755
--- a/t/t7103-reset-bare.sh
+++ b/t/t7103-reset-bare.sh
@@ -29,6 +29,12 @@ test_expect_success 'soft reset is ok' '
(cd .git && git reset --soft)
'
+test_expect_success 'hard reset works with GIT_WORK_TREE' '
+ mkdir worktree &&
+ GIT_WORK_TREE=$PWD/worktree GIT_DIR=$PWD/.git git reset --hard &&
+ test_cmp file worktree/file
+'
+
test_expect_success 'setup bare' '
git clone --bare . bare.git &&
cd bare.git