aboutsummaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorHeikki Orsila <heikki.orsila@iki.fi>2008-04-16 11:34:24 +0300
committerJunio C Hamano <gitster@pobox.com>2008-04-16 18:23:54 -0700
commit06cbe8550324e0fd2290839bf3b9a92aa53b70ab (patch)
treee455c3b2f28bd57e3d166f8bf1f11bab5cf7ae1e /cache.h
parenta17b1d2f0b3128be6f116bf22b58244b310d27b9 (diff)
downloadgit-06cbe8550324e0fd2290839bf3b9a92aa53b70ab.tar.gz
git-06cbe8550324e0fd2290839bf3b9a92aa53b70ab.tar.xz
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 'cache.h')
-rw-r--r--cache.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/cache.h b/cache.h
index 50b28fad0..3fcc28300 100644
--- a/cache.h
+++ b/cache.h
@@ -474,10 +474,20 @@ static inline void hashclr(unsigned char *hash)
int git_mkstemp(char *path, size_t n, const char *template);
+/*
+ * NOTE NOTE NOTE!!
+ *
+ * PERM_UMASK, OLD_PERM_GROUP and OLD_PERM_EVERYBODY enumerations must
+ * not be changed. Old repositories have core.sharedrepository written in
+ * numeric format, and therefore these values are preserved for compatibility
+ * reasons.
+ */
enum sharedrepo {
- PERM_UMASK = 0,
- PERM_GROUP,
- PERM_EVERYBODY
+ PERM_UMASK = 0,
+ OLD_PERM_GROUP = 1,
+ OLD_PERM_EVERYBODY = 2,
+ PERM_GROUP = 0660,
+ PERM_EVERYBODY = 0664,
};
int git_config_perm(const char *var, const char *value);
int adjust_shared_perm(const char *path);