Hi Junio, On Wed, 1 Nov 2017, Junio C Hamano wrote: > Stefan Beller <sbeller@xxxxxxxxxx> writes: > > > +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>`. Note, that the commit is likely > > Does the code describe a9dbc3f12c as v2.15.0:GIT-VERSION-GEN, or > would it always be <commit>:<path>? As the blob is described using this function: static void process_object(struct object *obj, const char *path, void *data) { struct process_commit_data *pcd = data; if (!oidcmp(&pcd->looking_for, &obj->oid) && !pcd->dst->len) { reset_revision_walk(); describe_commit(&pcd->current_commit, pcd->dst); strbuf_addf(pcd->dst, ":%s", path); } } i.e. as `describe_commit()` is used on the commit part, the answer to your question is: the former. I guess that is why Stefan wrote `commit-ish` instead of `commit` ;-) > > +not the commit that introduced the blob, but the one that was found > > +first; to find the commit that introduced the blob, you need to find > > Because we do not want to descend into the same tree object we saw > earlier, this "we show the name we happened to find first without > attempting to refine it for a better name" is a rather fundamental > limitation of this approach. Hopefully we can later improve it with > more thought, but for now it is better than nothing (and much better > than "git log --raw | grep"). Indeed. Ciao, Dscho