mirror of
https://github.com/git/git.git
synced 2025-04-07 21:04:23 +00:00
unpack-trees: populate cache-tree on successful merge
When we unpack trees into an existing index, we discard the old index and replace it with the new, merged index. Ensure that this index has its cache-tree populated. This will make subsequent git status and commit commands faster. Signed-off-by: Brian Degenhardt <bmd@bmdhacks.com> Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
9a3d637541
commit
52fca2184d
@ -199,6 +199,30 @@ test_expect_success 'checkout -B gives cache-tree' '
|
||||
test_cache_tree
|
||||
'
|
||||
|
||||
test_expect_success 'merge --ff-only maintains cache-tree' '
|
||||
git checkout current &&
|
||||
git checkout -b changes &&
|
||||
test_commit llamas &&
|
||||
test_commit pachyderm &&
|
||||
test_cache_tree &&
|
||||
git checkout current &&
|
||||
test_cache_tree &&
|
||||
git merge --ff-only changes &&
|
||||
test_cache_tree
|
||||
'
|
||||
|
||||
test_expect_success 'merge maintains cache-tree' '
|
||||
git checkout current &&
|
||||
git checkout -b changes2 &&
|
||||
test_commit alpacas &&
|
||||
test_cache_tree &&
|
||||
git checkout current &&
|
||||
test_commit struthio &&
|
||||
test_cache_tree &&
|
||||
git merge changes2 &&
|
||||
test_cache_tree
|
||||
'
|
||||
|
||||
test_expect_success 'partial commit gives cache-tree' '
|
||||
git checkout -b partial no-children &&
|
||||
test_commit one &&
|
||||
|
@ -1155,6 +1155,14 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
|
||||
o->src_index = NULL;
|
||||
ret = check_updates(o) ? (-2) : 0;
|
||||
if (o->dst_index) {
|
||||
if (!ret) {
|
||||
if (!o->result.cache_tree)
|
||||
o->result.cache_tree = cache_tree();
|
||||
if (!cache_tree_fully_valid(o->result.cache_tree))
|
||||
cache_tree_update(&o->result,
|
||||
WRITE_TREE_SILENT |
|
||||
WRITE_TREE_REPAIR);
|
||||
}
|
||||
discard_index(o->dst_index);
|
||||
*o->dst_index = o->result;
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user