aboutsummaryrefslogtreecommitdiffstats
path: root/builtin
diff options
context:
space:
mode:
authorTaylor Blau <me@ttaylorr.com>2022-11-18 18:43:56 -0500
committerTaylor Blau <me@ttaylorr.com>2022-11-18 18:43:56 -0500
commita92fce4c50d5c45e85a5532cd4425b68c8a99501 (patch)
tree602f471b4da6bc05967316b600ce7a7f2e7f3b3a /builtin
parentMerge branch 'mh/increase-credential-cache-timeout' (diff)
parentrebase: use 'skip_cache_tree_update' option (diff)
downloadgit-a92fce4c50d5c45e85a5532cd4425b68c8a99501.tar.gz
git-a92fce4c50d5c45e85a5532cd4425b68c8a99501.zip
Merge branch 'vd/skip-cache-tree-update'
Avoid calling 'cache_tree_update()' when doing so would be redundant. * vd/skip-cache-tree-update: rebase: use 'skip_cache_tree_update' option read-tree: use 'skip_cache_tree_update' option reset: use 'skip_cache_tree_update' option unpack-trees: add 'skip_cache_tree_update' option cache-tree: add perf test comparing update and prime
Diffstat (limited to 'builtin')
-rw-r--r--builtin/read-tree.c4
-rw-r--r--builtin/reset.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index f4cbe460b9..45c6652444 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -249,6 +249,10 @@ int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix)
if (opts.debug_unpack)
opts.fn = debug_merge;
+ /* If we're going to prime_cache_tree later, skip cache tree update */
+ if (nr_trees == 1 && !opts.prefix)
+ opts.skip_cache_tree_update = 1;
+
cache_tree_free(&active_cache_tree);
for (i = 0; i < nr_trees; i++) {
struct tree *tree = trees[i];
diff --git a/builtin/reset.c b/builtin/reset.c
index fdce6f8c85..ab02777482 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -73,9 +73,11 @@ static int reset_index(const char *ref, const struct object_id *oid, int reset_t
case HARD:
opts.update = 1;
opts.reset = UNPACK_RESET_OVERWRITE_UNTRACKED;
+ opts.skip_cache_tree_update = 1;
break;
case MIXED:
opts.reset = UNPACK_RESET_PROTECT_UNTRACKED;
+ opts.skip_cache_tree_update = 1;
/* but opts.update=0, so working tree not updated */
break;
default: