Compiling python on windows with vs

Thomas Schweikle tschweikle at bfs.de
Thu Jun 15 11:55:28 EDT 2023



Am Do., 15.Juni.2023 um 16:28:21 schrieb Eryk Sun:
> On 6/15/23, Thomas Schweikle via Python-list <python-list at python.org> wrote:
>>
>> In this case: not sure what is going on.
> 
> Possibly you have a setting configured that affects the behavior of
> Git via the MinGW-w64 runtime, such that calling mkdir() ends up
> calling NtSetInformationFile() to set the FileCaseSensitiveInformation
> for the directory.

It is a mount option for MSYS or cygwin controlled parts of the file 
system. posix=1 switches case sensitivity on, posix=0 switches it off.

MSYS or cygwin are then make caseSensitiveInfo "inheritated" by setting 
this flag for all newly created directories. This is a feature of the 
latest cygwin-dll. It might not be seen on older variants.

> Does the mkdir command in Git bash create a case-sensitive directory?
> It doesn't for me. I have to manually enable case sensitivity via
> `chattr +C`.
> 
> What do you get for `which git` and `git --version`?
> 
>      $ which git
>      /mingw64/bin/git
> 
>      $ git --version
>      git version 2.41.0.windows.1

the same:
$ which git
/mingw64/bin/git

$ git --version
git version 2.41.0.windows.1

And in cmd.exe:
+>where git
C:\Program Files\Git\bin\git.exe

+>git --version
git version 2.41.0.windows.1

>> $ fsutil file queryCaseSensitiveInfo .
> 
> The MSYS2 environment includes lsattr and chattr commands, with the
> case-sensitive flag mapped to "C". It's probably more convenient than
> typing `fsutil file queryCaseSensitiveInfo` or `fsutil file
> setCaseSensitiveInfo`.
> 
>      $ lsattr -d test
>      ------------ test
>      $ chattr +C test
>      $ lsattr -d test
>      -----------C test

True. But if you frequently change between environments fsutil is the 
command working in cmd.exe as in git-shell.

>> core.ignorecase is not regarded in any way. It does not mater if it is
>> set or not.
> 
> Git tests the case-sensitivity of the target directory to configure
> core.ignorecase when cloning a repo. If it's case insensitive, then
> core.ignorecase is enabled. This overrides the global value. AFAIK,
> the ignorecase setting is unrelated to actually setting the case
> sensitivity of created directories; it just affects how Git behaves on
> a case-insensitive filesystem.

-- 
Thomas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 321 bytes
Desc: OpenPGP digital signature
URL: <https://mail.python.org/pipermail/python-list/attachments/20230615/ab59cb46/attachment.sig>


More information about the Python-list mailing list