diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2014-02-16 09:28:03 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-02-18 14:40:23 -0800 |
commit | b7756d41dcc6720e6005b663bcb6f8b2f2a66763 (patch) | |
tree | ec80ffdea3b9a1564c78cd749b30f0e87e440bad /builtin/reset.c | |
parent | 7bbc4e8fdb33e0a8e42e77cc05460d4c4f615f4d (diff) | |
download | git-b7756d41dcc6720e6005b663bcb6f8b2f2a66763.tar.gz git-b7756d41dcc6720e6005b663bcb6f8b2f2a66763.tar.xz |
reset: optionally setup worktree and refresh index on --mixed
Refreshing index requires work tree. So we have two options: always
set up work tree (and refuse to reset if failing to do so), or make
refreshing index optional.
As refreshing index is not the main task, it makes more sense to make
it optional. This allows us to still work in a bare repository to update
what is in the index.
Reported-by: Patrick Palka <patrick@parcs.ath.cx>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/reset.c')
-rw-r--r-- | builtin/reset.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/builtin/reset.c b/builtin/reset.c index 60048030d..a99134435 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -320,7 +320,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix) if (reset_type == NONE) reset_type = MIXED; /* by default */ - if (reset_type != SOFT && reset_type != MIXED) + if (reset_type != SOFT && (reset_type != MIXED || get_git_work_tree())) setup_work_tree(); if (reset_type == MIXED && is_bare_repository()) @@ -340,8 +340,9 @@ int cmd_reset(int argc, const char **argv, const char *prefix) int flags = quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN; if (read_from_tree(&pathspec, sha1)) return 1; - refresh_index(&the_index, flags, NULL, NULL, - _("Unstaged changes after reset:")); + if (get_git_work_tree()) + refresh_index(&the_index, flags, NULL, NULL, + _("Unstaged changes after reset:")); } else { int err = reset_index(sha1, reset_type, quiet); if (reset_type == KEEP && !err) |