Comment by kreeben

4 years ago

Slightly off topic but I find myself stuck at being "please for the love of god don't use spaces in git branch names" old. Anno dazumal this might not even have been an issue and I'm just cargo culting.

And on that topic, git branches are case sensitive but windows filesystem API isn't. Git branches are materialized on the filesystem as files and directories.

  • The Windows filesystem API supports CS file- and directory names just fine.

    It can be enabled on a per-directory basis like so:

    > fsutil.exe file setCaseSensitiveInfo C:\folder enable

    NTFS had support for this for decades now - it was designed that way to be POSIX-compliant.

    It's shoddy software that lacks support for it, not the OS or the file system.

  • If people actually abuse git branches being CS, odds are good they're also abusing CS in the repository content.

    The linux kernel is one of the offenders, if you check it out on Windows or macOS (which supports CS but remains CI by default) you'll immediately get garbage in netfilter, because it's an habitual user of having different files with names identical but for the casing e.g. xt_TCPMSS.h and xt_tcpmss.h.

I enjoy choosing fun branch names from time to time. A few of them: Russian when a user reported a typo in a Russian translation; emoji (mostly added emoji rather than pure emoji); and my personal favourite, a ~250 character diatribe about a single-character bug I was fixing (~250 after I discovered that Git’s error messages when you cause it to try to use file names too long for the file system are fairly mediocre).