Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > Now, 'git log $(git describe)' does the same as 'git log'. > > NOTE: it might be possible that the unique abbreviation generated by > git-describe is no longer unique at a later stage. Evidently, in this > case the sha1 resolution fails. > > Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> > --- > sha1_name.c | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/sha1_name.c b/sha1_name.c > index b497528..c1f6cca 100644 > --- a/sha1_name.c > +++ b/sha1_name.c > @@ -159,6 +159,18 @@ static int get_short_sha1(const char *na > > if (len < MINIMUM_ABBREV) > return -1; > + > + /* check for output of git-describe */ > + if (len > MINIMUM_ABBREV + 2) { > + int i; > + for (i = len - MINIMUM_ABBREV - 2; i > 0 && name[i] != '-'; i--) > + ; /* do nothing */ > + if (i > 0 && name[i + 1] == 'g') { > + name += i + 2; > + len -= i + 2; > + } > + } > + Shouldn't you also verify the leading ref (most likely a tag) exists (and optionally check that it precedes the commit you decoded into, but that is probably more expensive than it's worth)? - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html