Hi, On Wed, 1 Nov 2017, Jacob Keller wrote: > On November 1, 2017 10:59:08 AM PDT, Stefan Beller <sbeller@xxxxxxxxxx> wrote: > >>> 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` ;-) > > > >$ ./git describe a9dbc3f12c > >warning: reflog of 'HEAD' references pruned commits > >v2.15.0-7-g980e40477f:GIT-VERSION-GEN > > > >So as noted below, this output is less than ideal, but technically > >correct as > >v2.15.0-7-g980e40477f contains that blob as well (you don't have these; > >it is this very series consisting of 7 patches on top of 2.15, none of > >them > >touching GIT-VERSION-GEN, hence that blob stays intact.) > > > >The way Junio asked, we actually may prefer the commit-ish to give > >that commit that introduced the blob for the first time, i.e. add the > >--reverse to the graph walking. > > I know id prefer the first commit that introduced the blob. That's what > describing a commit does, it finds the oldest tag prior to the commit, > while --contains finds the first tag that contains the commit as an > ancestor. It is very easy to wish for "the oldest commit introducing a blob". But since we're in a DAG, this question is not necessarily easy to answer: - A - B - C \ / D Let's assume that all commits except A have the blob, and that B and D (for some reason) have the same author/committer dates. Do you identify B or D as the commit introducing the blob? Ciao, Dscho