]> git.ipfire.org Git - thirdparty/git.git/commit
cache-tree: do not lazy-fetch tentative tree
authorJonathan Tan <jonathantanmy@google.com>
Tue, 3 Sep 2019 19:42:47 +0000 (12:42 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Sep 2019 21:07:35 +0000 (14:07 -0700)
commitf981ec18cf4a67aca98901a4c152f07e24ef3c5f
treeb569950e02e9c5d73bd199f9b3d2c3bff0bcd0ee
parent745f6812895b31c02b29bdfe4ae8e5498f776c26
cache-tree: do not lazy-fetch tentative tree

The cache-tree datastructure is used to speed up the comparison
between the HEAD and the index, and when the index is updated by
a cherry-pick (for example), a tree object that would represent
the paths in the index in a directory is constructed in-core, to
see if such a tree object exists already in the object store.

When the lazy-fetch mechanism was introduced, we converted this
"does the tree exist?" check into an "if it does not, and if we
lazily cloned, see if the remote has it" call by mistake.  Since
the whole point of this check is to repair the cache-tree by
recording an already existing tree object opportunistically, we
shouldn't even try to fetch one from the remote.

Pass the OBJECT_INFO_SKIP_FETCH_OBJECT flag to make sure we only
check for existence in the local object store without triggering the
lazy fetch mechanism.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
[jc: rewritten the proposed log message]
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache-tree.c
t/t0410-partial-clone.sh