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

Re: Buggy handling of non-canonical ref names

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 24, 2011, 18:40 UTC
Message-ID
<7vaaayps9z.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4E551D70.9080509@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu> writes:
> What is the policy about reference names and their canonicalization?

The overall policy has been that we care about well-formed input, and everything else is "undefined", even though as you found out some of them try to work sensibly.

Show 5 quoted lines
>     $ git check-ref-format /foo/bar ; echo $?
>     0
>
>     $ git check-ref-format --print /foo/bar
>     /foo/bar
I think these are bogus. Patches welcome.
Show 9 quoted lines
> However, creating a reference with such a name is equivalent to creating
> a reference without the leading slash:
>
>     $ git update-ref /foo/bar HEAD
>     $ cat .git/foo/bar
>     ef6cf90ba11dd6205f8b974692d795ea0b1c0bdd
>     $ git branch /bar/baz
>     $ git for-each-ref | grep baz
>     ef6cf90ba11dd6205f8b974692d795ea0b1c0bdd commit refs/heads/bar/baz
These are just examples of "undefined being nice to the user as a bonus".
Previous: Michael HaggertyNext: Carlos Martín Nieto
Message 2 of 10 in “Buggy handling of non-canonical ref names”
  1. Michael HaggertyAug 24, 2011
  2. Junio C HamanoAug 24, 2011
  3. Carlos Martín NietoAug 24, 2011
  4. Junio C HamanoAug 24, 2011
  5. Michael HaggertyAug 25, 2011
  6. Do not allow refnames to start with a slashMichael Haggerty, Aug 25, 2011
  7. Junio C HamanoAug 25, 2011
  8. check-ref-format --print: Normalize refnames that start with slashesMichael Haggerty, Aug 25, 2011
  9. Junio C HamanoAug 25, 2011
  10. Michael HaggertyAug 25, 2011

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.