Re: get commit ID from a tree object ID
> On Sat, Mar 17, 2018 at 10:57 AM Junio C Hamano <gitster@pobox.com> wrote:
>> Jeff King <peff@peff.net> writes:
Show 19 quoted lines
>>> If you want to dig further, you can use the diff machinery to show which
>>> commit introduced a particular tree, like:
>>>
>>> git rev-list --all |
>>> git diff-tree --stdin --pretty=raw --raw -t -r |
>>> less +/$desired_tree
>>>
>>> That "less" will find the mentioned tree, and then you'll have to
>>> manually read the commit. It would be possible to do it mechanically
>>> with a short perl script, but I'll leave that as an exercise for the
>>> reader.
>
>> Before Stefan jumps in ;-) I wonder if a recently materialized
>> "find-object" option to the diff family can be used here as a
>> sugar-coated way.
>
> I am late to jump in, but testing the 'git log --find-object'
> seems to have issues with trees named by sha1 here,
> but the named tree via <commit>:<path> still seems to work.
Experimenting a little more, I wondered if "-t" wasn't being passed by default:
$ git --oneline log -t --find-object=$(git rev-parse HEAD~30:Documentation/technical)
$
No, that's not it. Could it have to do with merges?
$ git log --oneline -m --first-parent --find-object=$(git rev-parse HEAD~30:Documentation/technical)
df6cfe8c30 Merge branch 'debian-experimental' into google3
f86d5fd2e4 Merge branch 'debian-experimental' into google3
Yes.
That doesn't explain why <commit>:<path> worked for you, though. :)
Thanks, Jonathan