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

Re: Sensible way to see what objects are being fetched just-in-time in a partial clone?

From
Tao Klerks <tao@klerks.biz>
Date
Aug 26, 2024, 19:37 UTC
Message-ID
<CAPMMpoiPeSyLHUd072Q9AozdaCAjpOL03jY-0Y33B2iEQ5EdTQ@mail.gmail.com>
In-Reply-To
<xmqqv7znjir3.fsf@gitster.g>
On Mon, Aug 26, 2024 at 7:28 PM Junio C Hamano <gitster@pobox.com> wrote:
>
>
> Unlike the diff machinery, blame does not have a prefetch machinery.
> I am glad that somebody is looking at it.

I'm not convinced I'm looking at it in a very useful way from your perspective: My C skills being spectacularly lacking for fixing the core code, I am just writing an external python-based wrapper for "my" users.

I will try to "productize" it sufficiently to send here in case it's useful to someone, but all I can really offer the community-at-large is confirmation that in principle, the approach works as you would expect: With some small number of jit-fetches for rename-detection during the revision walk(s), and with one blob-prefetch call afterwards, "git blame" can be made to run cleanly/quickly in a "filter:none" clone even on a file like "git.c", with hundreds of revisions.

Previous: Junio C HamanoNext: Tao Klerks
Message 3 of 4 in “Sensible way to see what objects are being fetched just-in-time in a partial clone?”
  1. Tao KlerksAug 26, 2024
  2. Junio C HamanoAug 26, 2024
  3. Tao KlerksAug 26, 2024
  4. Python-based fetch optimizer script for "blame" in Partial Clones (was: Re: Sensible way to see what objects are being fetched just-in-time in a partial clone?)Tao Klerks, Aug 26, 2024

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.