From: Junio C Hamano Date: Mon, 16 Jul 2012 04:39:03 +0000 (-0700) Subject: Merge branch 'ar/clone-honor-umask-at-top' X-Git-Tag: v1.7.12-rc0~30 X-Git-Url: https://www.git.lorimer.id.au/gitweb.git/diff_plain/cc24a7fbe51a4f015ec381af2c59fe9e76d90a72?hp=f247b10aa0f75727f1b4bdd67b060720b8219b29 Merge branch 'ar/clone-honor-umask-at-top' A handful of files and directories we create had tighter than necessary permission bits when the user wanted to have group writability (e.g. by setting "umask 002"). * ar/clone-honor-umask-at-top: add: create ADD_EDIT.patch with mode 0666 rerere: make rr-cache fanout directory honor umask Restore umasks influence on the permissions of work tree created by clone --- diff --git a/builtin/add.c b/builtin/add.c index 87446cf92a..89dce56a24 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -281,7 +281,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix) argc = setup_revisions(argc, argv, &rev, NULL); rev.diffopt.output_format = DIFF_FORMAT_PATCH; DIFF_OPT_SET(&rev.diffopt, IGNORE_DIRTY_SUBMODULES); - out = open(file, O_CREAT | O_WRONLY, 0644); + out = open(file, O_CREAT | O_WRONLY, 0666); if (out < 0) die (_("Could not open '%s' for writing."), file); rev.diffopt.file = xfdopen(out, "w"); diff --git a/builtin/clone.c b/builtin/clone.c index d3b7fdccec..e314b0b6d2 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); diff --git a/rerere.c b/rerere.c index da18fc37df..b57a34daa7 100644 --- a/rerere.c +++ b/rerere.c @@ -524,7 +524,7 @@ static int do_plain_rerere(struct string_list *rr, int fd) continue; hex = xstrdup(sha1_to_hex(sha1)); string_list_insert(rr, path)->util = hex; - if (mkdir(git_path("rr-cache/%s", hex), 0755)) + if (mkdir_in_gitdir(git_path("rr-cache/%s", hex))) continue; handle_file(path, NULL, rerere_path(hex, "preimage")); fprintf(stderr, "Recorded preimage for '%s'\n", path);