From: Derrick Stolee Date: Fri, 16 May 2025 13:28:39 GMT Subject: Re: [PATCH 0/3] Integrate the sparse index with 'git apply' and 'git add -p/-i' Message-ID: <6736f2fd-a91d-4ffd-b421-6670a0e028d8@gmail.com> In-Reply-To: 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