threads / discuss / 12976

File info from SHA ID

Subject: File info from SHA ID

## tl;dr

3 messages between Apr 3, 2008 and Apr 4, 2008.

replies: 2people: 2as markdown or json

Christoph Duelli· Apr 3, 2008, 16:58 UTC · lore

Given (only) a SHA ID (say from a file's $ID$ expansion), is it possible to determine the file's name, date of commit etc? I'd be most interested in the file path.

Best regards, keep up the good work
-- 
Christoph Duelli
Linus Torvalds· Apr 3, 2008, 17:16 UTC · re: Christoph Duelli · lore

Re: File info from SHA ID

On Thu, 3 Apr 2008, Christoph Duelli wrote:
>
> Given (only) a SHA ID (say from a file's $ID$ expansion), is it possible to
> determine the file's name, date of commit etc?
Not directly, no.
But you can get it indirectly with a number of variations on
	git whatchanged --raw --no-abbrev

and then just searching for that SHA1 ID in the result. That will also show you where in the history that SHA1 came to be or went away.

The SHA1 itself is _purely_ about the actual contents of the file, so it has no bearing on where that file actually exists, and two identical files in different places will have the same SHA1. So no SHA1 -> filename mapping can exist, but you can figure out where in the tree or history it existed if you just have the full repository.

			Linus
Christoph Duelli· Apr 4, 2008, 13:55 UTC · re: Linus Torvalds · lore

Re: File info from SHA ID

Linus Torvalds schrieb:
Show 19 quoted lines
> 
> On Thu, 3 Apr 2008, Christoph Duelli wrote:
>> Given (only) a SHA ID (say from a file's $ID$ expansion), is it possible to
>> determine the file's name, date of commit etc?
> 
> Not directly, no.
> 
> But you can get it indirectly with a number of variations on
> 
> 	git whatchanged --raw --no-abbrev
> 
> and then just searching for that SHA1 ID in the result. That will also 
> show you where in the history that SHA1 came to be or went away.
> 
> The SHA1 itself is _purely_ about the actual contents of the file, so it 
> has no bearing on where that file actually exists, and two identical files 
> in different places will have the same SHA1. So no SHA1 -> filename 
> mapping can exist, but you can figure out where in the tree or history it 
> existed if you just have the full repository.

Ok, thank you. I was able to use the output of "git whatchanged --raw --no-abbrev" to achieve what I wanted to do.

-- 
Christoph Duelli

← back to recent threads