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

[RFC PATCH 0/5] line-log: towards a more responsive, incremental 'git log -L'

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Aug 18, 2019, 18:27 UTC
Message-ID
<20190818182801.7580-1-szeder.dev@gmail.com>

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.

SZEDER Gábor (5):
  completion: offer '--(no-)patch' among 'git log' options
  line-log: remove unused fields from 'struct line_log_data'
  t4211-line-log: add tests for parent oids
  line-log: more responsive, incremental 'git log -L'
  line-log: try to use generation number-based topo-ordering
 contrib/completion/git-completion.bash |  1 +
 line-log.c                             |  4 +-
 line-log.h                             |  5 +-
 revision.c                             | 38 +++++++++++---
 t/t4211-line-log.sh                    | 68 ++++++++++++++++++++++++++
 5 files changed, 105 insertions(+), 11 deletions(-)
-- 
2.23.0.349.g73f10e387d
Next: SZEDER Gábor
Message 1 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.