git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

Previous: SZEDER GáborNext: SZEDER Gábor
Message 10 of 17 in “line-log: towards a more responsive, incremental 'git log -L'”
  1. 0/5 line-log: towards a more responsive, incremental 'git log -L'SZEDER Gábor, Aug 18, 2019
  2. 1/5 completion: offer '--(no-)patch' among 'git log' optionsSZEDER Gábor, Aug 18, 2019
  3. 2/5 line-log: remove unused fields from 'struct line_log_data'SZEDER Gábor, Aug 18, 2019
  4. Derrick StoleeAug 19, 2019
  5. 3/5 t4211-line-log: add tests for parent oidsSZEDER Gábor, Aug 18, 2019
  6. 4/5 line-log: more responsive, incremental 'git log -L'SZEDER Gábor, Aug 18, 2019
  7. SZEDER GáborAug 19, 2019
  8. Derrick StoleeAug 19, 2019
  9. 5/5 line-log: try to use generation number-based topo-orderingSZEDER Gábor, Aug 18, 2019
  10. Derrick StoleeAug 19, 2019
  11. SZEDER GáborAug 19, 2019
  12. Derrick StoleeAug 19, 2019
  13. SZEDER GáborAug 19, 2019
  14. Derrick StoleeAug 19, 2019
  15. SZEDER GáborAug 21, 2019
  16. Derrick StoleeApr 9, 2020
  17. SZEDER GáborApr 24, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.