On Wed, Dec 04, 2024 at 03:15:42PM -0800, Josh Steadmon wrote: > diff --git a/builtin/describe.c b/builtin/describe.c > index 8ec3be87df..065c1bde6e 100644 > --- a/builtin/describe.c > +++ b/builtin/describe.c > @@ -336,7 +336,7 @@ static void describe_commit(struct object_id *oid, struct strbuf *dst) > return; > } > > - if (!max_candidates) > + if (!max_candidates && !always) > die(_("no tag exactly matches '%s'"), oid_to_hex(&cmit->object.oid)); > if (debug) > fprintf(stderr, _("No exact match on refs or tags, searching to describe\n")); Yep, this is the same spot I found. I think it's the right place to make the fix. > Subject: Re: [PATCH] fixup! describe: stop traversing when we run out of names This commit is already in 'next', so it's too late to squash in a change (though I'd have done this separately anyway, as it's already an issue for a manual --candidates=0 setting, as unlikely as that is). Can you re-send with a full commit message? > diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh > index 5633b11d01..9aebf09d3d 100755 > --- a/t/t6120-describe.sh > +++ b/t/t6120-describe.sh > @@ -715,4 +715,18 @@ test_expect_success 'describe --broken --dirty with a file with changed stat' ' > ) > ' > > +test_expect_success '--always with no refs falls back to commit hash' ' > + git init always-no-refs && > + ( > + cd always-no-refs && > + test_commit --no-tag A && > + test_commit --no-tag B && > + test_commit --no-tag C && > + git describe --abbrev=12 --always HEAD^ >actual && > + echo 13 >expected_size && > + test_file_size actual >actual_size && > + test_cmp expected_size actual_size > + ) > +' I'm not sure if I'm missing anything subtle, but this seems more complicated than necessary to show the bug. I think just the exit code of: git describe --match=does-not-exist --always HEAD is sufficient, even in a repo with tags. If you really want to check stdout, then probably comparing against: git rev-list -1 --abbrev-commit --abbrev=13 HEAD >expect && test_cmp expect actual is a little more obvious than the size check. -Peff