Restore umasks influence on the permissions of work tree created by clone
authorAlex Riesen <raa.lkml@gmail.com>
Sat, 7 Jul 2012 21:50:30 +0000 (23:50 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Jul 2012 20:22:29 +0000 (13:22 -0700)
The original version of the git-clone just used mkdir(1) to create
the working directories.  The version rewritten in C creates all
directories inside the working tree by using the mode argument of
0777 when calling mkdir(2) to let the umask take effect.

But the top-level directory of the working tree is created by
passing the mode argument of 0755 to mkdir(2), which results in an
overly tight restriction if the user wants to make directories group
writable with a looser umask like 002.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c

index 0fb5956b48a77767e650d85f0818790736a4f94d..d7387e63ae9b84a7ca64235309870c11e10553e9 100644 (file)
@@ -557,7 +557,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
                if (safe_create_leading_directories_const(work_tree) < 0)
                        die_errno(_("could not create leading directories of '%s'"),
                                  work_tree);
-               if (!dest_exists && mkdir(work_tree, 0755))
+               if (!dest_exists && mkdir(work_tree, 0777))
                        die_errno(_("could not create work tree dir '%s'."),
                                  work_tree);
                set_git_work_tree(work_tree);