Fix init-db shared database case
[git.git] / init-db.c
index 1fcef0b..65898fa 100644 (file)
--- a/init-db.c
+++ b/init-db.c
@@ -10,8 +10,8 @@ int main(int argc, char **argv)
        char *sha1_dir = getenv(DB_ENVIRONMENT), *path;
        int len, i;
 
-       if (mkdir(".dircache", 0700) < 0) {
-               perror("unable to create .dircache");
+       if (mkdir(".git", 0755) < 0) {
+               perror("unable to create .git directory");
                exit(1);
        }
 
@@ -24,18 +24,18 @@ int main(int argc, char **argv)
        sha1_dir = getenv(DB_ENVIRONMENT);
        if (sha1_dir) {
                struct stat st;
-               if (!stat(sha1_dir, &st) < 0 && S_ISDIR(st.st_mode))
+               if (!stat(sha1_dir, &st) && S_ISDIR(st.st_mode))
                        return 0;
                fprintf(stderr, "DB_ENVIRONMENT set to bad directory %s: ", sha1_dir);
        }
 
        /*
-        * The default case is to have a DB per managed directory. 
+        * The default case is to have a DB per managed directory.
         */
        sha1_dir = DEFAULT_DB_ENVIRONMENT;
        fprintf(stderr, "defaulting to private storage area\n");
        len = strlen(sha1_dir);
-       if (mkdir(sha1_dir, 0700) < 0) {
+       if (mkdir(sha1_dir, 0755) < 0) {
                if (errno != EEXIST) {
                        perror(sha1_dir);
                        exit(1);
@@ -45,7 +45,7 @@ int main(int argc, char **argv)
        memcpy(path, sha1_dir, len);
        for (i = 0; i < 256; i++) {
                sprintf(path+len, "/%02x", i);
-               if (mkdir(path, 0700) < 0) {
+               if (mkdir(path, 0755) < 0) {
                        if (errno != EEXIST) {
                                perror(path);
                                exit(1);