summaryrefslogtreecommitdiff
path: root/builtin/commit.c
diff options
context:
space:
mode:
authorVictoria Dye <vdye@github.com>2022-11-10 19:06:04 +0000
committerTaylor Blau <me@ttaylorr.com>2022-11-10 21:49:34 -0500
commitdc5d40f5bc4d93dcc57ee82c5ca8d1369055d8cb (patch)
treedaf9d6037bb90db545bee2e8c473d7241e6bf4d5 /builtin/commit.c
parent0e47bca0f7592f8053ffcc530d8afa1d2e364563 (diff)
read-tree: use 'skip_cache_tree_update' option
When running 'read-tree' with a single tree and no prefix, 'prime_cache_tree()' is called after the tree is unpacked. In that situation, skip a redundant call to 'cache_tree_update()' in 'unpack_trees()' by enabling the 'skip_cache_tree_update' unpack option. Removing the redundant cache tree update provides a substantial performance improvement to 'git read-tree <tree-ish>', as shown by a test added to 'p0006-read-tree-checkout.sh': Test before after ---------------------------------------------------------------------- read-tree br_ballast_plus_1 3.94(1.80+1.57) 3.00(1.14+1.28) -23.9% Note that the 'read-tree' in 't1022-read-tree-partial-clone.sh' is updated to read two trees, rather than one. The test was first introduced in d3da223f221 (cache-tree: prefetch in partial clone read-tree, 2021-07-23) to exercise the 'cache_tree_update()' code path, as used in 'git merge'. Since this patch drops the call to 'cache_tree_update()' in single-tree 'git read-tree', change the test to use the two-tree variant so that 'cache_tree_update()' is called as intended. Signed-off-by: Victoria Dye <vdye@github.com> Signed-off-by: Taylor Blau <me@ttaylorr.com>
Diffstat (limited to 'builtin/commit.c')
0 files changed, 0 insertions, 0 deletions