I noticed when using the Git that is distributed under the Cygwin setup (Git v1.7.5.1-1) that, when creating a new repository, the core.filemode local setting is set to true. Being under Windows, this should be false because of how file permissions are handled. I started digging through the Git source, and found this:
builtin/init-db.c:15 #ifdef NO_TRUSTABLE_FILEMODE #define TEST_FILEMODE 0 #else #define TEST_FILEMODE 1 #endif builtin/init-db.c:259 git_config_set("core.filemode", filemode ? "true" : "false"); This is where Git intelligently sets the filemode setting under a new project, but it depends on the NO_TRUSTABLE_FILEMODE preprocessor definition. Looking further, I found it here: Makefile:936 ifeq ($(uname_O),Cygwin) ... NO_TRUSTABLE_FILEMODE = UnfortunatelyYes So as you can see, if uname -o is equal to Cygwin, it sets this flag which in turn correctly causes Git to set filemode to false when a new repository is created. To confirm, I built the source myself under Cygwin, and sure enough, creating a new repository sets the filemode setting to false. Just to be clear here, the version of Git that I built is working as intended, whereas the version of Git that is distributed through the Cygwin setup is not. My question is this: Why is the git package that is distributed with Cygwin not built as I have above? Is there somewhere more formal to submit this to have it reviewed? I feel it is something important that should be included, as I'm not a fan of installing 20 dependencies just to build Git correctly on every system I use Cygwin on. -- View this message in context: http://old.nabble.com/Distributed-Git-not-compiled-under-Cygwin--tp33047124p33047124.html Sent from the Cygwin list mailing list archive at Nabble.com. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple