Subject: Re: [PATCH 0/3] Integrate the sparse index with 'git apply' and 'git add -p/-i'

From: Derrick Stolee <[email-masked]>
Date: Fri, 16 May 2025 09:28:39 -0400

On 5/14/25 11:16 AM, Phillip Wood wrote:

> This made me wonder about the other commands that take "--patch" like checkout 
> and reset. Do you know how well they handle the sparse index? They'll all 
> benefit from the changes to git apply in this series but I was wondering if they 
> need any further changes.
By adding these two tests...

   test_perf_on_all 'test_write_lines y y y | git checkout --patch -'
   test_perf_on_all 'echo >>a && git add a && test_write_lines y | git reset 
--patch'

...we can demonstrate that the changes to 'git apply' are sufficient
to get the improvements we seek for 'git checkout --patch':

Test                                   HEAD~3   HEAD~2
---------------------------------------------------------------
... git checkout --patch - (full-v3)     1.22   1.22  +0.0%
... git checkout --patch - (full-v4)     1.15   1.16  +0.9%
... git checkout --patch - (sparse-v3)   1.37   0.11 -92.0%
... git checkout --patch - (sparse-v4)   1.37   0.11 -92.0%
... git reset --patch (full-v3)          0.82   0.81  -1.2%
... git reset --patch (full-v4)          0.76   0.77  +1.3%
... git reset --patch (sparse-v3)        1.57   0.91 -42.0%
... git reset --patch (sparse-v4)        1.59   0.92 -42.1%

But 'git reset --patch' appears to not be fast _enough_. It turns
out that it has the same issue as cmd_add(). I'll add a patch for
this purpose.

Thanks,
-Stolee