On 2021-01-05 John Keeping <j...@keeping.me.uk> wrote: > I think something like option 2 is the right answer here, since that > brings us closer to Git's behaviour.
``git tag`` never looks anywhere but under ``refs/tags/``. Not even ``git tag --contains`` will show annotated tags that are only referenced outside that path. OTOH (on my example repo):: $ git show HEAD commit 4081ad6720f3f60f5f11a77f1d932517496e33ba (HEAD -> master, refs/weird/thing, tag: refs/weird/annotated, tag: foo, origin/master, origin/HEAD) Author: dakkar <dak...@thenautilus.net> Date: 2020-12-29 20:10:18 +0000 first $ git tag -v refs/weird/annotated error: tag 'refs/weird/annotated' not found. So maybe CGit is already behaving very closely to git. > Does the patch below help? > > [snip] > > +static const char *tag_patterns[] = { > + "%s", > + "refs/%s", > + "refs/tags/%s", > + NULL > +}; I feel like those strings should be in the reverse order: we've been asked to show a tag, let's try to resolve the ref as an actual tag before guessing. -- Dakkar - <Mobilis in mobile> GPG public key fingerprint = A071 E618 DD2C 5901 9574 6FE2 40EA 9883 7519 3F88 key id = 0x75193F88