X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-reset.c;h=7ee811f0b8de34025a14a53d42f4fceb477a598e;hb=41e2edf41a6d501f1b8beca7f1f0bcbe9296dcc2;hp=4c61025aaef96ae9f8bcabe3fd4ad6c0fc2beba3;hpb=4356736571c6845cb446e4a7c9d645868e558ca0;p=git.git diff --git a/builtin-reset.c b/builtin-reset.c index 4c61025aa..7ee811f0b 100644 --- a/builtin-reset.c +++ b/builtin-reset.c @@ -108,7 +108,6 @@ static int update_index_refresh(int fd, struct lock_file *index_lock) return error("Could not read index"); result = refresh_cache(0) ? 1 : 0; if (write_cache(fd, active_cache, active_nr) || - close(fd) || commit_locked_index(index_lock)) return error ("Could not refresh index"); return result; @@ -158,6 +157,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 +243,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. */