Re: [PATCH 4/4] tag: "git tag" refuses to use HEAD as a tagname
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Dec 2, 2024, 10:54 UTC
- Message-ID
- <Z02R2Puck52VetcF@pks.im>
- In-Reply-To
- <20241202070714.3028549-5-gitster@pobox.com>
On Mon, Dec 02, 2024 at 04:07:14PM +0900, Junio C Hamano wrote:
Show 13 quoted lines
> diff --git a/refs.c b/refs.c
> index a24bfe3845..01ef2a3093 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -735,7 +735,7 @@ int check_branch_ref(struct strbuf *sb, const char *name)
>
> int check_tag_ref(struct strbuf *sb, const char *name)
> {
> - if (name[0] == '-')
> + if (name[0] == '-' || !strcmp(name, "HEAD"))
> return -1;
>
> strbuf_reset(sb);I was thinking a bit about whether we can spin this a bit wider and disallow creation of any refname that looks like a root ref. But I don't think that would make sense, as root refs are defined as all-uppercase refs living in the root, and disallowing tags that look like this would go way too far.
So I then wondered what a reasonable alternative would be, and the only rule I could come up with was to disallow root refs with "HEAD" in it. But even that doesn't feel reasonable to me.
All to say: singling out "HEAD" feels like a sensible step, and I don't think we should handle root refs more generally here.
The other patches look good to me, as well. Thanks!
Patrick