# File info from SHA ID

3 messages from 2008-04-03 to 2008-04-04. Participants: Christoph Duelli, Linus Torvalds.
Thread: https://gitlist.dev/t/12976

## Christoph Duelli, 2008-04-03 16:58

Subject: File info from SHA ID
Message-ID: <47F50CC5.20502@melosgmbh.de>
URL: https://gitlist.dev/e/47F50CC5.20502%40melosgmbh.de

```
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, 2008-04-03 17:16

Subject: Re: File info from SHA ID
Message-ID: <alpine.LFD.1.00.0804031009280.14670@woody.linux-foundation.org>
URL: https://gitlist.dev/e/alpine.LFD.1.00.0804031009280.14670%40woody.linux-foundation.org
In-Reply-To: <47F50CC5.20502@melosgmbh.de>

```


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, 2008-04-04 13:55

Subject: Re: File info from SHA ID
Message-ID: <47F63339.3070903@melosgmbh.de>
URL: https://gitlist.dev/e/47F63339.3070903%40melosgmbh.de
In-Reply-To: <alpine.LFD.1.00.0804031009280.14670@woody.linux-foundation.org>

```
Linus Torvalds schrieb:
> 
> 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

```
