summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorTaylor Blau <me@ttaylorr.com>2022-11-18 23:43:56 (GMT)
committerTaylor Blau <me@ttaylorr.com>2022-11-18 23:43:56 (GMT)
commita92fce4c50d5c45e85a5532cd4425b68c8a99501 (patch)
tree602f471b4da6bc05967316b600ce7a7f2e7f3b3a /builtin
parent3f98d7ab1b816f403fc12c7a7e056ceba230bab9 (diff)
parent652bd0211d456be052ff3e884a5e29b74ff824c0 (diff)
downloadgit-a92fce4c50d5c45e85a5532cd4425b68c8a99501.zip
git-a92fce4c50d5c45e85a5532cd4425b68c8a99501.tar.gz
git-a92fce4c50d5c45e85a5532cd4425b68c8a99501.tar.bz2
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 f4cbe46..45c6652 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 fdce6f8..ab02777 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: