"git init --shared=all" was failing because chmod was returning EPERM. According to the man page, the set-group-id behavior is already default: man 2 mkdir:
The directory's group ID is set to that of the parent directory in which it is created.
Signed-off-by: Scott R Parish <srp@srparish.net> --- path.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
Show changes to path.c +2 −0
diff --git a/path.c b/path.c index 4260952..4089753 100644 --- a/path.c +++ b/path.c @@ -282,8 +282,10 @@ int adjust_shared_perm(const char *path) : (shared_repository == PERM_EVERYBODY ? (S_IXGRP|S_IXOTH) : 0)); +#if !defined(__APPLE__) if (S_ISDIR(mode)) mode |= S_ISGID; +#endif if ((mode & st.st_mode) != mode && chmod(path, mode) < 0) return -2; return 0;
-- 1.5.3.4.209.g5d1ce-dirty