{"thread":{"id":"52987","subject":"Question on case insensitive systems.","startedAt":"2020-03-13T12:06:26Z","lastAt":"2020-03-13T15:22:28Z","messageCount":2,"participants":["Paweł Redzyński","Torsten Bögershausen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"393198","messageId":"CAOTQ0KvpO5iVFsMqz5WPZd8uEd9_SRxQvznvEEB05jnTTWXBBg@mail.gmail.com","threadId":"52987","inReplyTo":null,"subject":"Question on case insensitive systems.","fromName":"Paweł Redzyński","fromEmail":"pawelredzynski@gmail.com","sentAt":"2020-03-13T12:05:46Z","receivedAt":"2020-03-13T12:06:26Z","isPatch":false,"sender":{"key":"pawelredzynski@gmail.com","avatar":null},"body":"Hello,\nI noticed that check for filename collision on case insensitive\nsystems happen only upon clone:\nhttps://github.com/git/git/blob/c522f061d551c9bb8684a7c3859b2ece4499b56b/entry.c#L499\nand\nhttps://github.com/git/git/blob/c522f061d551c9bb8684a7c3859b2ece4499b56b/unpack-trees.c#L445\n\n What if collision exists on some commit that is checked out only after clone?\n\nIs this behavior intentional (eg. for performance reasons)? If its a\nbug, can I volunteer to solve it?\nBest regards\nPaweł\n"},{"id":"393208","messageId":"20200313152223.4glbokvfcmexrx4n@tb-raspi4","threadId":"52987","inReplyTo":"CAOTQ0KvpO5iVFsMqz5WPZd8uEd9_SRxQvznvEEB05jnTTWXBBg@mail.gmail.com","subject":"Re: Question on case insensitive systems.","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2020-03-13T15:22:23Z","receivedAt":"2020-03-13T15:22:28Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On Fri, Mar 13, 2020 at 01:05:46PM +0100, Paweł Redzyński wrote:\n> Hello,\n> I noticed that check for filename collision on case insensitive\n> systems happen only upon clone:\n> https://github.com/git/git/blob/c522f061d551c9bb8684a7c3859b2ece4499b56b/entry.c#L499\n> and\n> https://github.com/git/git/blob/c522f061d551c9bb8684a7c3859b2ece4499b56b/unpack-trees.c#L445\n>\n>  What if collision exists on some commit that is checked out only after clone?\n\nThe OS will overwrite e.g. the content of \"FILE.TXT\" with \"file.txt\" if\nboth exist in the repo.\n(Or the other way around)\nAs a result, \"FILE.TXT\" would have the contents of \"file.txt\" which is\ntypically different, and Git will report \"FILE.TXT\" as \"modified\".\n\n>\n> Is this behavior intentional (eg. for performance reasons)?\n\nThat depends on the definition of \"performance\".\nThe Git-developpers have not yet implemented a better solution,\nsince most of them do such things in their spare time.\n\nAs a consequence, we haven't been able to measure the performance\non a computer running Git.\n\n>If its a bug, can I volunteer to solve it?\n\nI would call it a feature, worth to be implemented.\nAnd of course, you are wellcome to solve it.\nI (and probably many others) are happy to help with code-reviews\nand other tips, hints, suggestions.\n\n> Best regards\n> Paweł\n"}]}