Re: [PATCH 0/3] Integrate the sparse index with 'git apply' and 'git add -p/-i'
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 8, 2025, 18:26 UTC
- Message-ID
- <xmqqecwz557w.fsf@gitster.g>
- In-Reply-To
- <pull.1914.git.1746579320.gitgitgadget@gmail.com>
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 31 quoted lines
> The sparse index helps make some Git commands faster when using
> sparse-checkout in cone mode. However, not all code paths are aware that the
> index can have non-blob entries, so we are careful about rolling this
> feature out gradually. The cost of this rollout is that some commands are
> slower with the sparse index as they need to expand a sparse index into a
> full index in memory, which requires parsing tree objects to construct the
> full path list.
>
> This patch series focuses on the 'git add -p' command, which is slow with
> the sparse index for a couple of reasons, handled in the first two patches:
>
> 1. 'git add -p' uses 'git apply' as a subcommand and 'git apply' needs
> integration with the sparse index. Luckily, we just need to add the repo
> setting and appropriate tests to confirm it behaves as expected.
> 2. The interactive modes of 'git add' ('-p' and '-i') leave cmd_add()
> before the code that sets the repo setting to allow for a sparse index.
> Patch 2 fixes this and adds appropriate tests to confirm the behavior in
> a sparse-checkout.
>
> A third patch adds a performance test to p2000-sparse-operations.sh to
> confirm that we are getting the performance improvement we expect:
>
> BASE PATCH 1 PATCH 2
> ---------------------------------------------------------
> 2000.118: (full-v3) 0.80 0.84 +5.0% 0.84 +5.0%
> 2000.119: (full-v4) 0.76 0.79 +3.9% 0.80 +5.3%
> 2000.120: (sparse-v3) 2.09 1.39 -33.5% 0.07 -96.7%
> 2000.121: (sparse-v4) 2.09 1.39 -33.5% 0.07 -96.7%
>
>
> Thanks, -StoleeAs always, it is delight to read a well-written cover letter that naturally convinces readers why the series is worth reading ;-)
Thanks.