Merge branch 'tb/config-core-filemode-check-on-broken-fs'
[gitweb.git] / builtin / init-db.c
index 587a5055ed677c3541c85101d944ffb0a19b1962..2619ca5881694b68e24ce13c41347829e4e7d7bb 100644 (file)
@@ -254,7 +254,10 @@ static int create_default_files(const char *template_path)
                struct stat st2;
                filemode = (!chmod(path, st1.st_mode ^ S_IXUSR) &&
                                !lstat(path, &st2) &&
-                               st1.st_mode != st2.st_mode);
+                               st1.st_mode != st2.st_mode &&
+                               !chmod(path, st1.st_mode));
+               if (filemode && !reinit && (st1.st_mode & S_IXUSR))
+                       filemode = 0;
        }
        git_config_set("core.filemode", filemode ? "true" : "false");