diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-10-17 15:55:13 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-10-17 15:55:14 -0700 |
commit | be98d915bec9aadcf746192ce0c5ddc19926b8bb (patch) | |
tree | 43a1901eb05eb53e4f2105a3469e4529688cc66c /builtin/reset.c | |
parent | f52752d36a98d0e5a70242d615d0f36f84936b45 (diff) | |
parent | 2c63d6eb46da4ef0abc9c040c927818e437d2fcc (diff) | |
download | git-be98d915bec9aadcf746192ce0c5ddc19926b8bb.tar.gz git-be98d915bec9aadcf746192ce0c5ddc19926b8bb.tar.xz |
Merge branch 'jk/trailing-slash-in-pathspec'
Code refactoring.
* jk/trailing-slash-in-pathspec:
reset: handle submodule with trailing slash
rm: re-use parse_pathspec's trailing-slash removal
Diffstat (limited to 'builtin/reset.c')
-rw-r--r-- | builtin/reset.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/builtin/reset.c b/builtin/reset.c index 1a5344877..f2f9d5539 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -143,7 +143,6 @@ static int read_from_tree(const struct pathspec *pathspec, opt.output_format = DIFF_FORMAT_CALLBACK; opt.format_callback = update_index_from_diff; - read_cache(); if (do_diff_cache(tree_sha1, &opt)) return 1; diffcore_std(&opt); @@ -169,7 +168,7 @@ static void set_reflog_message(struct strbuf *sb, const char *action, static void die_if_unmerged_cache(int reset_type) { - if (is_merge() || read_cache() < 0 || unmerged_cache()) + if (is_merge() || unmerged_cache()) die(_("Cannot do a %s reset in the middle of a merge."), _(reset_type_names[reset_type])); @@ -220,8 +219,13 @@ static void parse_args(struct pathspec *pathspec, } } *rev_ret = rev; + + if (read_cache() < 0) + die(_("index file corrupt")); + parse_pathspec(pathspec, 0, PATHSPEC_PREFER_FULL | + PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP | (patch_mode ? PATHSPEC_PREFIX_ORIGIN : 0), prefix, argv); } |