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

Reply via email to