diff options
author | Heikki Orsila <heikki.orsila@iki.fi> | 2008-04-16 11:34:24 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-04-16 18:23:54 -0700 |
commit | 06cbe8550324e0fd2290839bf3b9a92aa53b70ab (patch) | |
tree | e455c3b2f28bd57e3d166f8bf1f11bab5cf7ae1e /builtin-init-db.c | |
parent | a17b1d2f0b3128be6f116bf22b58244b310d27b9 (diff) | |
download | git-06cbe8550324e0fd2290839bf3b9a92aa53b70ab.tar.gz |
Make core.sharedRepository more generic
git init --shared=0xxx, where '0xxx' is an octal number, will create
a repository with file modes set to '0xxx'. Users with a safe umask
value (0077) can use this option to force file modes. For example,
'0640' is a group-readable but not group-writable regardless of
user's umask value. Values compatible with old Git versions are written
as they were before, for compatibility reasons. That is, "1" for
"group" and "2" for "everybody".
"git config core.sharedRepository 0xxx" is also handled.
Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-init-db.c')
-rw-r--r-- | builtin-init-db.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/builtin-init-db.c b/builtin-init-db.c index 2854868b4e..a76f5d3474 100644 --- a/builtin-init-db.c +++ b/builtin-init-db.c @@ -400,9 +400,16 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) char buf[10]; /* We do not spell "group" and such, so that * the configuration can be read by older version - * of git. + * of git. Note, we use octal numbers for new share modes, + * and compatibility values for PERM_GROUP and + * PERM_EVERYBODY. */ - sprintf(buf, "%d", shared_repository); + if (shared_repository == PERM_GROUP) + sprintf(buf, "%d", OLD_PERM_GROUP); + else if (shared_repository == PERM_EVERYBODY) + sprintf(buf, "%d", OLD_PERM_EVERYBODY); + else + sprintf(buf, "0%o", shared_repository); git_config_set("core.sharedrepository", buf); git_config_set("receive.denyNonFastforwards", "true"); } |