diff options
author | Taylor Blau <me@ttaylorr.com> | 2022-11-18 23:43:56 (GMT) |
---|---|---|
committer | Taylor Blau <me@ttaylorr.com> | 2022-11-18 23:43:56 (GMT) |
commit | a92fce4c50d5c45e85a5532cd4425b68c8a99501 (patch) | |
tree | 602f471b4da6bc05967316b600ce7a7f2e7f3b3a /builtin | |
parent | 3f98d7ab1b816f403fc12c7a7e056ceba230bab9 (diff) | |
parent | 652bd0211d456be052ff3e884a5e29b74ff824c0 (diff) | |
download | git-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.c | 4 | ||||
-rw-r--r-- | builtin/reset.c | 2 |
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: |