[PATCH 23/27] submodule: die_path_inside_submodule is sparse aware
- From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Jan 25, 2021, 17:42 UTC
- Message-ID
- <6b9f935b87aec1806f48294574924fc26c4abbc7.1611596534.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.847.git.1611596533.gitgitgadget@gmail.com>
From: Derrick Stolee <dstolee@microsoft.com>
Since we already do not collapse a sparse directory if it contains a submodule, we don't need to expand to a full index in die_path_inside_submodule(). A simple scan of the index entries is sufficient.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com> --- submodule.c | 2 -- t/t1092-sparse-checkout-compatibility.sh | 24 +++++++++++------------- 2 files changed, 11 insertions(+), 15 deletions(-)
diff --git a/submodule.c b/submodule.c index f80cfddbd52..487d083e4ef 100644 --- a/submodule.c +++ b/submodule.c @@ -346,8 +346,6 @@ void die_path_inside_submodule(struct index_state *istate, { int i, j; - ensure_full_index(istate); - for (i = 0; i < istate->cache_nr; i++) { struct cache_entry *ce = istate->cache[i]; int ce_len = ce_namelen(ce); diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh index ae594ab880c..2e8efe6ab37 100755 --- a/t/t1092-sparse-checkout-compatibility.sh +++ b/t/t1092-sparse-checkout-compatibility.sh @@ -390,29 +390,27 @@ test_expect_success 'sparse-index is expanded and converted back' ' GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \ git -C sparse-index -c core.fsmonitor="" reset --hard && test_region index convert_to_sparse trace2.txt && - test_region index ensure_full_index trace2.txt && + test_region index ensure_full_index trace2.txt +' + +test_expect_success 'sparse-index is not expanded' ' + init_repos && + + rm -f trace2.txt && + GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \ + git -C sparse-index -c core.fsmonitor="" status -uno && + test_region ! index ensure_full_index trace2.txt && rm trace2.txt && echo >>sparse-index/README.md && GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \ git -C sparse-index -c core.fsmonitor="" add -A && - test_region index convert_to_sparse trace2.txt && - test_region index ensure_full_index trace2.txt && + test_region ! index ensure_full_index trace2.txt && rm trace2.txt && echo >>sparse-index/extra.txt && GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \ git -C sparse-index -c core.fsmonitor="" add extra.txt && - test_region index convert_to_sparse trace2.txt && - test_region index ensure_full_index trace2.txt -' - -test_expect_success 'sparse-index is not expanded' ' - init_repos && - - rm -f trace2.txt && - GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \ - git -C sparse-index -c core.fsmonitor="" status -uno && test_region ! index ensure_full_index trace2.txt '
-- gitgitgadget