branch -d: base the "already-merged" safety on the branch it merges with
[gitweb.git] / builtin-reset.c
index 73e60223db844ee2445aff0b2253f0f21e8a5bef..11d1c6e4d6d2ec0580cae3725f6b3a093e68aa67 100644 (file)
@@ -286,8 +286,10 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
        if (reset_type == NONE)
                reset_type = MIXED; /* by default */
 
-       if (reset_type == HARD && is_bare_repository())
-               die("hard reset makes no sense in a bare repository");
+       if ((reset_type == HARD || reset_type == MERGE)
+           && !is_inside_work_tree())
+               die("%s reset requires a work tree",
+                   reset_type_names[reset_type]);
 
        /* Soft reset does not touch the index file nor the working tree
         * at all, but requires them in a good order.  Other resets reset