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

Re: git branch case insensitivity (Possible bug)

From
Joshua Jensen <jjensen@workspacewhiz.com>
Date
Jan 9, 2013, 17:47 UTC
Message-ID
<50EDAD4A.4070108@workspacewhiz.com>
In-Reply-To
<50ED925B.2060402@op5.se>
----- Original Message -----
From: Andreas Ericsson
Date: 1/9/2013 8:52 AM
Show 11 quoted lines
>
> Are you using Mac OSX?
> Are you using the HFS+ filesystem shipped with it?
> Did you use the filesystem's default settings rather than reinstall your
> system with sensible settings?
>
> If you said "yes" to all of the above, this is a filesystem "feature",
> courtesy of (cr)Apple, and you're screwed.
>
> You can work around it by running "git pack-refs" every time you create
> a branch or a tag though.

There are two popular default file systems that are case preserving, case insensitive. One is on Mac. One is on Windows.

Since Git relies on file system behavior to store the equivalent of database entries like these refs, it cannot give a consistent user experience across platforms or even file systems within platforms.

That sounds like a bug in Git to me.

Perhaps pack-refs should be run automatically by any internal command that updates a ref to ensure a non-confusing, consistent user experience.

Further, if refs are no longer entries on the disk, then this nasty namespacing issue goes away.

User A: $ git branch render $ git push

User B: $ git pull $ git branch render/myfeature

render/myfeature can't be created, because Git assumes a filesystem structure. The render namespace is locked out forever.

-Josh
Previous: Johannes Sixt
Message 5 of 5 in “git branch case insensitivity (Possible bug)”
  1. Alexander GallegoJan 9, 2013
  2. Andreas EricssonJan 9, 2013
  3. Alexander GallegoJan 9, 2013
  4. Johannes SixtJan 9, 2013
  5. Joshua JensenJan 9, 2013

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.