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

Re: [PATCH 0/8] Introduce git-blame-tree(1) command

From
Derrick Stolee <stolee@gmail.com>
Date
Mar 27, 2025, 12:04 UTC
Message-ID
<511c7ce2-cd1c-4d0a-98b7-c7f5569a3eef@gmail.com>
In-Reply-To
<Z+Rl43VR3ErE0Bu4@nand.local>
On 3/26/2025 4:38 PM, Taylor Blau wrote:
Show 13 quoted lines
> On Wed, Mar 26, 2025 at 09:18:24PM +0100, Toon Claes wrote:
>> This is yet another attempt to upstream the builtin command
>> `git-blame-tree(1)`. This command is similar to git-blame(1) and shows
>> the most recent modification to paths in a tree..
>>
>> The last attempt (I'm aware of) was made by Ævar in 2023[1]. That
>> series was based of patches by Peff written in 2011[2].
> 
> For what it's worth, the blame-tree implementation that this came from
> has evolved significantly since it was originally written in 2011. Most
> recently Stolee and I worked on a version that uses changed-path Bloom
> filters to narrow the search, passing un-blamed paths to their parents
> at each level of the traversal.

It's worth mentioning that the underlying algorithm was nearly rebuilt from scratch with this "passing un-blamed paths to their parents" aspect, which unlocked other features such as caching results to be used by future queries, even when the tip branch advances.

With that in mind, using the 2011 version is unlikely to be valuable.
Taylor: do you have a drop of the latest blame-tree implementation that
could be shared with Toon?

Thanks, -Stolee

Previous: Jeff King
Message 15 of 15 in “Introduce git-blame-tree(1) command”
  1. 0/8 Introduce git-blame-tree(1) commandToon Claes, Mar 26, 2025
  2. 1/8 combine-diff: zero memory used for callback filepairsToon Claes, Mar 26, 2025
  3. 2/8 within_depth: fix return for empty pathToon Claes, Mar 26, 2025
  4. 3/8 diff: teach tree-diff a max-depth parameterToon Claes, Mar 26, 2025
  5. 4/8 blame-tree: introduce new subcommand to blame filesToon Claes, Mar 26, 2025
  6. 5/8 pathspec: add optional trie indexToon Claes, Mar 26, 2025
  7. 6/8 pathspec: turn on tries when appropriateToon Claes, Mar 26, 2025
  8. 7/8 tree-diff: use pathspec triesToon Claes, Mar 26, 2025
  9. 8/8 blame-tree: narrow pathspec as we traverseToon Claes, Mar 26, 2025
  10. Taylor BlauMar 26, 2025
  11. Jeff KingMar 27, 2025
  12. Taylor BlauMar 27, 2025
  13. Toon ClaesMar 28, 2025
  14. Jeff KingApr 1, 2025
  15. Derrick StoleeMar 27, 2025

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.