You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Windows, we use a POSIX emulation layer, the MSYS2 runtime, to allow
for running shell scripts (albeit at a hefty performance cost, Git's
test suite takes ~700 seconds to complete on Linux, according to Git's
CI runs, while it takes more than 6,000 seconds on Linux).
This emulation layer has a funny quirk when it comes to `chmod`
invocations: it pretends that it succeeded, when in reality it did not
do a thing (because the Access Control Lists used in Windows' permission
model are so different to Unix' default permission model that Git's test
suite assumes to be in effect).
Git's test suite relies on this quirk by assuming that the `chmod` calls
in `test_chmod` and `test_write_script` simply succeed on Windows
(without actually doing anything).
However, this quirk is only in effect as long as `chmod` is run inside
the pseudo Unix root directory structure or within the home directory.
When run outside, such invocations fail like this:
chmod: changing permissions of '<file>': Invalid argument
Now, when running Git's tests in, say, Visual Studio, we frequently are
in a worktree where the `chmod` invocations would fail.
Let's accommodate for that by explicitly skipping those `chmod`
invocations on Windows.
Signed-off-by: Johannes Schindelin <[email protected]>
0 commit comments