Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > diff --git a/object-name.c b/object-name.c > index dcf3ab99990..990f384129e 100644 > --- a/object-name.c > +++ b/object-name.c > @@ -403,21 +403,26 @@ static int show_ambiguous_object(const struct object_id *oid, void *data) > } else if (type == OBJ_TAG) { > struct tag *tag = lookup_tag(ds->repo, oid); > const char *tag_tag = ""; > + timestamp_t tag_date = 0; > > - if (!parse_tag(tag) && tag->tag) > + if (!parse_tag(tag) && tag->tag) { > tag_tag = tag->tag; > + tag_date = tag->date; > + } > > /* > * TRANSLATORS: This is a line of > * ambiguous tag object output. E.g.: > * > - * "deadbeef tag Some Tag Message" > + * "deadbeef tag 2021-01-01 - Some Tag Message" > * > * The second argument is the "tag" string from > * object.c, it should (hopefully) already be > * translated. > */ > - strbuf_addf(&desc, _("%s tag %s"), hash, tag_tag); > + strbuf_addf(&desc, _("%s tag %s - %s"), hash, > + show_date(tag_date, 0, DATE_MODE(SHORT)), > + tag_tag); So, when parse_tag() errors out, we show "" and epoch? We should be able to do a better error reporting than that; tag_tag and tag_date are both local and they do not have to be used to store sentinel values like that. Instead perhaps remember that we failed to parse_tag(), and _omit_ unavailable piece of information from the output? I dunno. > } else if (type == OBJ_TREE) { > /* > * TRANSLATORS: This is a line of ambiguous <type>