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

Re: Find commit that referenced a blob first

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 19, 2018, 22:38 UTC
Message-ID
<xmqqr2jydf6c.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CAGZ79kbJnyRbeH8yMa=QaqNofA_Ek_SwmH5qRaCaq4cyQ26Kqg@mail.gmail.com>
Stefan Beller <sbeller@google.com> writes:
Show 14 quoted lines
> On Thu, Jul 19, 2018 at 2:02 PM Lars Schneider <larsxschneider@gmail.com> wrote:
>>
>> Hi,
>>
>> I have a blob hash and I would like to know what commit referenced
>> this blob first in a given Git repo.
>
> git describe <blob>
>
> If the given object refers to a blob, it will be described as
> <commit-ish>:<path>,
> such that the blob can be found at <path> in the <commit-ish>, which itself
> describes the first commit in which this blob occurs in a reverse
> revision walk from HEAD.

You walk from the latest to earlier commit (because there by definition can be is no reverse pointer from older to newer commit), and see if it has the blob, and stop when you find one. Wouldn't it generally find the most recent use, not the earliest use as Lars seems to want?

Show 7 quoted lines
>
> Since
> 644eb60bd01 (builtin/describe.c: describe a blob, 2017-11-15)
> (included first in 2.16.0
>
> You're welcome,
> Stefan
Previous: Jeff KingNext: Stefan Beller
Message 5 of 6 in “Find commit that referenced a blob first”
  1. Lars SchneiderJul 19, 2018
  2. Stefan BellerJul 19, 2018
  3. Lars SchneiderJul 19, 2018
  4. Jeff KingJul 19, 2018
  5. Junio C HamanoJul 19, 2018
  6. Stefan BellerJul 19, 2018

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.