diff: do not chomp hunk-header in the middle of a character
[gitweb.git] / builtin-reset.c
index 4c61025aaef96ae9f8bcabe3fd4ad6c0fc2beba3..10dba60c39d3cf7dafe6d733a4d53977c285a73c 100644 (file)
@@ -158,6 +158,7 @@ static int read_from_tree(const char *prefix, const char **argv,
                return 1;
        diffcore_std(&opt);
        diff_flush(&opt);
+       diff_tree_release_paths(&opt);
 
        if (!index_was_discarded)
                /* The index is still clobbered from do_diff_cache() */
@@ -243,6 +244,9 @@ 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");
+
        /* 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. */