Alex Riesen <raa.lkml@xxxxxxxxx> writes: > The original (shell coded) version of the git-clone just used mkdir(1) > to create the working directories. The builtin changed the mode argument > to mkdir(2) to 0755, which was a bit unfortunate, as there are use A much more important reason why this is a good change (I think you could even say this is a bugfix) is because directories and files in the working tree are created with entry.c::create_directories() and entry.c::create_file(), and they do honour umask settings, and the top-level of the working tree should be handled the same way, no? > cases where umask-controlled creation is preferred and in any case > it is a well-known behaviour for new directory/file creation. > --- Sign-off? > > On Fri, 6 Jul 2012, Daniel Barkalow wrote: >> On Fri, 6 Jul 2012, Alex Riesen wrote: >>> when git-clone was built in, its treatment of umask has changed: the shell >>> version respected umask for newly created directories by using plain mkdir(1), >>> and the builtin version just uses mkdir(work_tree, 0755). >>> >>> Is it intentional? >> >> I have the vague feeling that it was intentional, but it's entirely >> plausible that I just overlooked that mkdir(2) applies umask and went for >> the mode that you normally want. I don't think there's any particular need >> for this operation to be more restrictive than umask. > > I didn't look hard enough, but still, I found not much of complaining either > way (frankly - none, but as I said, I didn'l look hard): none before - for > being too permissive, the only one in original post after building the thing > in - for being too restrictive. > > Maybe we should reconsider and go back to the old permission handling? > > builtin/clone.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/builtin/clone.c b/builtin/clone.c > index d3b7fdc..e314b0b 100644 > --- a/builtin/clone.c > +++ b/builtin/clone.c > @@ -708,7 +708,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); -- 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