Re: [RFC PATCH 0/5] line-log: towards a more responsive, incremental 'git log -L'
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Aug 19, 2019, 12:00 UTC
- Message-ID
- <a3f8b468-5ee5-4056-db67-bb8ba5390002@gmail.com>
- In-Reply-To
- <20190818182801.7580-1-szeder.dev@gmail.com>
On 8/18/2019 2:27 PM, SZEDER Gábor wrote:
Show 16 quoted lines
> Line-level log performs a preprocessing step in > prepare_revision_walk(), during which it filters and rewrites history > to keep only commits modifying the given line range. This > preprocessing causes significant delay before the first commit is > shown, wastes CPU time when the user asks only for a few commits, and > does parent rewriting with no way to turn it off. > > This patch series addresses these issues by integrating line-level log > filtering into the revision walking machinery and making it work > together with generation number-based topo-ordering (though for now > only in the case when the user doesn't explicitly asks for parent > rewriting, which is probably the common case). > > The first two patches are quite straightforward (and arguably somewhat > unrelated), but the rest deals with history traversal and parent > rewriting, which I don't usually do, hence the RFC.
Hi Szeder,
Thanks for sending this series! I'm particularly excited about it because we recently got a bug report from a user in the Windows OS repo about "git log -L" being very slow. I put it on the backlog [1] but haven't had time to investigate it myself. After we are done updating to v2.23.0 [2], I'll have time to test your changes on the Windows repo. I anticipate your change to provide a massive boost.
In the meantime, your first three patches look good to me. I'll dig more into the last two at the same time as I run performance tests.
Thanks, -Stolee
[1] https://github.com/microsoft/git/issues/166 [2] https://github.com/microsoft/git/pull/165