reset: don't allow "git reset -- $pathspec" in bare repo
[gitweb.git] / builtin / reset.c
index 045c9609f242cdddb67084dd4b8f98d04a30e242..664fad9fc586cf0276e4bf8e1315d2eae8ceb911 100644 (file)
@@ -295,8 +295,6 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
                else if (reset_type != NONE)
                        die(_("Cannot do %s reset with paths."),
                                        _(reset_type_names[reset_type]));
-               return read_from_tree(pathspec, sha1,
-                               quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN);
        }
        if (reset_type == NONE)
                reset_type = MIXED; /* by default */
@@ -308,6 +306,10 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
                die(_("%s reset is not allowed in a bare repository"),
                    _(reset_type_names[reset_type]));
 
+       if (pathspec)
+               return read_from_tree(pathspec, sha1,
+                               quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN);
+
        /* Soft reset does not touch the index file nor the working tree
         * at all, but requires them in a good order.  Other resets reset
         * the index file to the tree object we are switching to. */