From: Patrick Steinhardt Date: Mon, 02 Dec 2024 10:54:21 GMT Subject: Re: [PATCH 4/4] tag: "git tag" refuses to use HEAD as a tagname Message-ID: In-Reply-To: <20241202070714.3028549-5-gitster@pobox.com> On Mon, Dec 02, 2024 at 04:07:14PM +0900, Junio C Hamano wrote: > 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