Hm, being one day offline and there are lots of ideas and new patches, I like that. I run these test under msys and cygwin on latest pu (a3dc223ff234481356c): ./t0001-init.sh ./t0004-unwritable.sh ./t0061-run-command.sh ./t0070-fundamental.sh ./t1004-read-tree-m-u-wf.sh ./t1300-repo-config.sh ./t1301-shared-repo.sh ./t1308-config-set.sh ./t2026-prune-linked-checkouts.sh ./t3600-rm.sh ./t3700-add.sh ./t4039-diff-assume-unchanged.sh ./t4056-diff-order.sh ./t5537-fetch-shallow.sh ./t7300-clean.sh ./t7503-pre-commit-hook.sh ./t7504-commit-msg-hook.sh ./t7508-status.sh (msys passes or skips all) Without digging further, these fail on my cygwin: $ grep "not ok" p.txt not ok 29 - init notices EPERM not ok 2 - write-tree should notice unwritable repository not ok 3 - commit should notice unwritable repository not ok 4 - update-index should notice unwritable repository not ok 5 - add should notice unwritable repository not ok 3 - mktemp to unwritable directory prints filename not ok 13 - funny symlink in work tree, un-unlink-able not ok 23 - proper error on non-accessible files not ok 4 - prune directories with unreadable gitdir not ok 15 - Test that "git rm -f" fails if its rm fails not ok 16 - When the rm in "git rm -f" fails, it should not remove the file from the index not ok 20 - Re-add foo and baz not ok 21 - Modify foo -- rm should refuse not ok 22 - Modified foo -- rm -f should work not ok 23 - Re-add foo and baz for HEAD tests not ok 24 - foo is different in index from HEAD -- rm should refuse not ok 23 - git add should fail atomically upon an unreadable file not ok 24 - git add --ignore-errors not ok 25 - git add (add.ignore-errors) not ok 26 - git add (add.ignore-errors = false) not ok 27 - --no-ignore-errors overrides config not ok 4 - unreadable orderfile not ok 28 - removal failure not ok 61 - status succeeds in a read-only repository If we remove POSIXPERM from CYGWIN, all tests pass ;-) but some are skipped : < ok 26 - init creates a new deep directory (umask vs. shared) < ok 3 - run_command reports EACCES < ok 4 - unreadable directory in PATH < ok 113 - preserves existing permissions < ok 2 - shared=1 does not clear bits preset by umask 002 < ok 3 - shared=1 does not clear bits preset by umask 022 < ok 5 - update-server-info honors core.sharedRepository < ok 6 - shared = 0660 (r--r-----) ro < ok 7 - shared = 0660 (rw-rw----) rw < ok 8 - shared = 0640 (r--r-----) ro < ok 9 - shared = 0640 (rw-r-----) rw < ok 10 - shared = 0600 (r--------) ro < ok 11 - shared = 0600 (rw-------) rw < ok 12 - shared = 0666 (r--r--r--) ro < ok 13 - shared = 0666 (rw-rw-rw-) rw < ok 14 - shared = 0664 (r--r--r--) ro < ok 15 - shared = 0664 (rw-rw-r--) rw < ok 16 - info/refs respects umask in unshared repo < ok 17 - git reflog expire honors core.sharedRepository < ok 18 - forced modes < ok 4 - find-copies-harder is not confused by mode bits < ok 10 - shallow fetch from a read-only repo < ok 32 - git clean -d with an unreadable empty directory < ok 7 - with non-executable hook < ok 8 - --no-verify with non-executable hook < ok 13 - with non-executable hook < ok 14 - with non-executable hook (editor) < ok 15 - --no-verify with non-executable hook < ok 16 - --no-verify with non-executable hook (editor) I'm not sure what is the best way forward, it seems as if CYGIN is "half POSIX" now. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html