summaryrefslogtreecommitdiff
path: root/builtin/reset.c
diff options
context:
space:
mode:
authorBen Peart <benpeart@microsoft.com>2018-10-23 19:04:21 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-10-24 02:57:07 (GMT)
commit9ac8125d1ab83f1a0c48f6f30bb8fea92d9770d7 (patch)
tree63b8f8230ac3585388e1aec9ff686d6636d42976 /builtin/reset.c
parentc4df23f7927d8d00e666a3c8d1b3375f1dc8a3c1 (diff)
downloadgit-9ac8125d1ab83f1a0c48f6f30bb8fea92d9770d7.zip
git-9ac8125d1ab83f1a0c48f6f30bb8fea92d9770d7.tar.gz
git-9ac8125d1ab83f1a0c48f6f30bb8fea92d9770d7.tar.bz2
reset: don't compute unstaged changes after reset when --quiet
When git reset is run with the --quiet flag, don't bother finding any additional unstaged changes as they won't be output anyway. This speeds up the git reset command by avoiding having to lstat() every file looking for changes that aren't going to be reported anyway. The savings can be significant. In a repo on Windows with 200K files "git reset" drops from 7.16 seconds to 0.32 seconds for a savings of 96%. Signed-off-by: Ben Peart <benpeart@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/reset.c')
-rw-r--r--builtin/reset.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/reset.c b/builtin/reset.c
index 6d37a35..c2f8e72 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -376,7 +376,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
int flags = quiet ? REFRESH_QUIET : REFRESH_IN_PORCELAIN;
if (read_from_tree(&pathspec, &oid, intent_to_add))
return 1;
- if (get_git_work_tree())
+ if (!quiet && get_git_work_tree())
refresh_index(&the_index, flags, NULL, NULL,
_("Unstaged changes after reset:"));
} else {