Alex Riesen <raa.lkml@xxxxxxxxx> writes: > It does not allow changing the bit to a non-root user. > This fixes t1301-shared-repo.sh on the platform. ... > diff --git a/path.c b/path.c > index af27161..6f09ba2 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(__FreeBSD__) || (__FreeBSD__ > 4) > if (S_ISDIR(mode)) > mode |= S_ISGID; > +#endif As usual, please do something like (1) In git-compat-util.h #ifndef MKDIR_HAS_BSD_GROUP_SEMANTICS #define FORCE_BSD_GROUP_SEMANTICS S_ISGID #else #define FORCE_BSD_GROUP_SEMANTICS 0 #endif (2) In Makefile (and configure.in perhaps) ifeq ($(uname_S),FreeBSD) MKDIR_HAS_BSD_GROUP_SEMANTICS = YesPlease endif ... ifdef MKDIR_HAS_BSD_GROUP_SEMANTICS COMPAT_CFLAGS += -DMKDIR_HAS_BSD_GROUP_SEMANTICS endif (3) In the above codepath: if (S_ISDIR(mode)) mode |= FORCE_BSD_GROUP_SEMANTICS; or something. Avoid #if directly based on platform names in *.c files. -- 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