As part of testing the latest Git release candidate, I've spotted some
behaviour I don't know where to begin explaining: one of the test
scripts fails if my Git worktree is at, say, /cygdrive/c/git, but not
if it's at /home/Adam/git.

I assume there's something odd going on with file permissions and the
slightly different ways Cygwin handles things under the /cygdrive
mount versus under the native file tree. I've also reported this to
the Git mailing list, but I'm not sufficiently familiar with Cygwin's
expected behaviour with regard to these mount points to know where the
fault lies.

Relatively simple test case: from a Cygwin Bash prompt, run:

CHECKOUT_DIR=/cygdrive/c/git &&
git clone https://github.com/git/git "$CHECKOUT_DIR" &&
cd "$CHECKOUT_DIR" &&
git checkout v2.30.0-rc0 &&
make -j "$(($(nproc) + 1))" &&
cd t &&
./t4129-apply-samemode.sh -x

This fails if run as above, but succeeds if the first line is replaced
with `CHECKOUT_DIR=~/git`

I've attached the relevant subsection of the failing test output, as
well as `cygcheck -srv` output.

My suspicion is that Cygwin's behaviour is reasonable and this just
isn't a valid test to run within a /cygdrive/ mountpoint, but that's
based entirely on history of similar problems rather than any
understanding of what's going on here. Can someone who has some vague
understanding of the /cygdrive/ behaviour take a look and see if they
can work out what's going wrong here?

Attachment: cygcheck.out
Description: Binary data

Attachment: failing-test.out
Description: Binary data

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to