]> git.ipfire.org Git - thirdparty/git.git/commit
fetch/pull: use the sparse index
authorDerrick Stolee <dstolee@microsoft.com>
Wed, 22 Dec 2021 14:20:52 +0000 (14:20 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Dec 2021 19:42:39 +0000 (11:42 -0800)
commit5a4e0547e2386f9bf0565316d7b751fe9459898b
tree0b5919a74ceffe48ceaaadf6c0f4a7100559a519
parent597af311a2899bfd6640b9b107622c5795d5f998
fetch/pull: use the sparse index

The 'git fetch' and 'git pull' commands parse the index in order to
determine if submodules exist. Without command_requires_full_index=0,
this will expand a sparse index, causing slow performance even when
there is no new data to fetch.

The .gitmodules file will never be inside a sparse directory entry, and
even if it was, the index_name_pos() method would expand the sparse
index if needed as we search for the path by name. These commands do not
iterate over the index, which is the typical thing we are careful about
when integrating with the sparse index.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch.c
builtin/pull.c
t/t1092-sparse-checkout-compatibility.sh