"Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > 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, -Stolee As always, it is delight to read a well-written cover letter that naturally convinces readers why the series is worth reading ;-) Thanks.