object-name: show date for ambiguous tag objects

Make the ambiguous tag object output nicer in the case of tag objects
such as ebf3c04b26 (Git 2.32, 2021-06-06) by including the date in
the "tagger" header. I.e.:

    $ git rev-parse b7e68
    error: short object ID b7e68 is ambiguous
    hint: The candidates are:
    hint:   b7e68c41d92 tag 2021-06-06 - v2.32.0
    hint:   b7e68ae18e0 commit 2019-12-23 - bisect: use the standard 'if (!var)' way to check for 0
    hint:   b7e68f6b413 tree
    hint:   b7e68490b97 blob
    b7e68
    [...]

Before this we'd emit a "tag" line without a date, e.g.:

    hint:   b7e68c41d92 tag v2.32.0

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-01-27 06:26:47 +01:00 committed by Junio C Hamano
parent ba5e8a0eb8
commit 851b3d7671

View File

@ -408,19 +408,24 @@ static int show_ambiguous_object(const struct object_id *oid, void *data)
* TRANSLATORS: This is a line of ambiguous
* tag object output. E.g.:
*
* "deadbeef tag Some Tag Message"
* "deadbeef tag 2022-01-01 - Some Tag Message"
*
* The second argument is the "tag" string
* The second argument is the YYYY-MM-DD found
* in the tag.
*
* The third argument is the "tag" string
* from object.c.
*/
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);
} else {
/*
* TRANSLATORS: This is a line of ambiguous
* tag object output where we couldn't parse
* the tag itself. E.g.:
*
* "deadbeef tag [bad tag, could not parse it]"
* "deadbeef [bad tag, could not parse it]"
*/
strbuf_addf(&desc, _("%s [bad tag, could not parse it]"),
hash);