Merge branch 'jk/maint-1.6.5-reset-hard' into maint-1.6.5
authorJunio C Hamano <gitster@pobox.com>
Wed, 20 Jan 2010 20:22:58 +0000 (12:22 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 20 Jan 2010 20:22:58 +0000 (12:22 -0800)
* jk/maint-1.6.5-reset-hard:
  reset: unbreak hard resets with GIT_WORK_TREE

builtin-reset.c
t/t7103-reset-bare.sh

index 11d1c6e..e4418bc 100644 (file)
@@ -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
index 68041df..afb55b3 100755 (executable)
@@ -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