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

Re: Question on case insensitive systems.

From
Torsten Bögershausen <tboegi@web.de>
Date
Mar 13, 2020, 15:22 UTC
Message-ID
<20200313152223.4glbokvfcmexrx4n@tb-raspi4>
In-Reply-To
<CAOTQ0KvpO5iVFsMqz5WPZd8uEd9_SRxQvznvEEB05jnTTWXBBg@mail.gmail.com>
On Fri, Mar 13, 2020 at 01:05:46PM +0100, Paweł Redzyński wrote:
Show 8 quoted lines
> Hello,
> I noticed that check for filename collision on case insensitive
> systems happen only upon clone:
> https://github.com/git/git/blob/c522f061d551c9bb8684a7c3859b2ece4499b56b/entry.c#L499
> and
> https://github.com/git/git/blob/c522f061d551c9bb8684a7c3859b2ece4499b56b/unpack-trees.c#L445
>
>  What if collision exists on some commit that is checked out only after clone?

The OS will overwrite e.g. the content of "FILE.TXT" with "file.txt" if both exist in the repo. (Or the other way around) As a result, "FILE.TXT" would have the contents of "file.txt" which is typically different, and Git will report "FILE.TXT" as "modified".

>
> Is this behavior intentional (eg. for performance reasons)?

That depends on the definition of "performance". The Git-developpers have not yet implemented a better solution, since most of them do such things in their spare time.

As a consequence, we haven't been able to measure the performance on a computer running Git.

>If its a bug, can I volunteer to solve it?

I would call it a feature, worth to be implemented. And of course, you are wellcome to solve it. I (and probably many others) are happy to help with code-reviews and other tips, hints, suggestions.

> Best regards
> Paweł
Previous: Paweł Redzyński
Message 2 of 2 in “Question on case insensitive systems.”
  1. Paweł RedzyńskiMar 13, 2020
  2. Torsten BögershausenMar 13, 2020

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.