Git tree/blob and corresponding commit

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Git tree/blob and corresponding commit

Pascal Obry

Something I'm trying to figure out and can't find the answer myself. I'm
browsing a tree, for example:

    $ git ls-tree HEAD~100

This list a set of files with the corresponding blob. Each blob has it's
own SHA1. Fine.

Now given a SHA1 I'd like to know which commit has created (was
containing) this specific blob?

What is the best way to achieve that?

Thanks.

--

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: Git tree/blob and corresponding commit

Jonathan Nieder
Pascal Obry wrote:

> Now given a SHA1 I'd like to know which commit has created (was containing)
> this specific blob?

Why do you want to know?  The right method depends on your reason.  You
probably know more than I do about this, but here are my thoughts.

If some loose object of yours got corrupted and you are trying to
see what exactly is missing, then (for this task) you are in luck.  See
<http://www.kernel.org/pub/software/scm/git/docs/howto/recover-corrupted-blob-object.txt>.

If some packed object got corrupted, I'd be interested to hear how
this is handled.  I think there was discussion recently of how to
recover from that situation.  If you have the luxury, it might be good
to use unpack-objects to get to the first situation.

But I think that is not your situation.  I'll assume for definiteness
that some source file appeared out of thin air in your /lost+found and
you are trying to figure out what it is.  Then see
<http://thread.gmane.org/gmane.comp.version-control.git/44750/focus=44754>
and surrounding discussion.  You could use "git ls-tree -r" if you do
not have the filename.

Hope that helps,
Jonathan
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: Git tree/blob and corresponding commit

Jonathan Nieder
I wrote:

> see
> <http://thread.gmane.org/gmane.comp.version-control.git/44750/focus=44754>

but I actually meant
<http://thread.gmane.org/gmane.comp.version-control.git/44750/focus=44849>.
Anyway, the whole thread is interesting.  Sorry for the noise.

Sincerely,
Jonathan
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: Git tree/blob and corresponding commit

Pascal Obry
Jonathan,

> but I actually meant
> <http://thread.gmane.org/gmane.comp.version-control.git/44750/focus=44849>.
> Anyway, the whole thread is interesting.  Sorry for the noise.

Thanks, I had a look. This is indeed giving some procedure... I was
hopping for something faster (git rev-list takes some time!).

--

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: Git tree/blob and corresponding commit

Bryan Donlan
On Thu, Aug 14, 2008 at 10:02 AM, Pascal Obry <[hidden email]> wrote:
> Jonathan,
>
>> but I actually meant
>>
>> <http://thread.gmane.org/gmane.comp.version-control.git/44750/focus=44849>.
>> Anyway, the whole thread is interesting.  Sorry for the noise.
>
> Thanks, I had a look. This is indeed giving some procedure... I was hopping
> for something faster (git rev-list takes some time!).

It's not really meant to be a common case; if the same file is created
under different names by different commits that aren't ancestors of
each other, then it's unclear which should be reported. As such,
there's no index or other such thing to quickly find the commits
corresponding to a blob, so you just have to walk the entire history.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html