git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 6/8] check_refname_format(): add FULLY_QUALIFIED flag

From
Patrick Steinhardt <ps@pks.im>
Date
Apr 30, 2024, 10:05 UTC
Message-ID
<ZjDCd3z1MeFlvh7Q@tanuki>
In-Reply-To
<20240430094738.GA1279403@coredump.intra.peff.net>
On Tue, Apr 30, 2024 at 05:47:38AM -0400, Jeff King wrote:
Show 21 quoted lines
> On Mon, Apr 29, 2024 at 09:01:52AM -0700, Karthik Nayak wrote:
> 
> > Jeff King <peff@peff.net> writes:
> > 
> > > Before operating on a refname we get from a user, we usually check that
> > > it's syntactically valid. As a general rule, refs should be in the
> > > "refs/" namespace, the exception being HEAD and pseudorefs like
> > > FETCH_HEAD, etc. Those pseudorefs should consist only of all-caps and
> > > dash. But the syntactic rules are not enforced by check_refname_format().
> > 
> > Nit: s/dash/underscore
> 
> Oops, yes. Will fix (and the same mistake in patch 8). Thanks.
> 
> > Also FETCH_HEAD is a special_ref, this confusion should however be
> > resolved with Patrick's patches [1].
> 
> Hmph, I guess I was not paying attention and missed that the distinction
> even existed. But yeah, I think for the purposes here it is not at all
> important. This is purely about the syntax rules, which are the same for
> HEAD, pseudorefs, and special refs.

Agreed. I'll send out a complete rewrite of that patch series in a bit where I drop the distinction of special and pseudo refs completely. From thereon, pseudo refs return to their original meaning, which is a file that is not a ref, but that can be parsed as a ref via git-rev-parse(1).

I think that the current state of refs, special refs, root refs, pseudo refs and head refs is not something that anybody can reasonably understand without studying our ref code for months. And I did study it for months now and still feel like I don't always get the full picture.

Patrick
Previous: Jeff KingNext: Patrick Steinhardt
Message 4 of 8 in “check_refname_format(): add FULLY_QUALIFIED flag”
  1. 6/8 check_refname_format(): add FULLY_QUALIFIED flagJeff King, Apr 29, 2024
  2. Karthik NayakApr 29, 2024
  3. Jeff KingApr 30, 2024
  4. Patrick SteinhardtApr 30, 2024
  5. Patrick SteinhardtApr 30, 2024
  6. Jeff KingApr 30, 2024
  7. Patrick SteinhardtApr 30, 2024
  8. Junio C HamanoApr 30, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.