Re: [PATCH] Add two core.sharedRepository options: group-readable and world-readable
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 12, 2008, 00:53 UTC
- Message-ID
- <7vfxtrnban.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <20080411140916.GA30667@zakalwe.fi>
Heikki Orsila <heikki.orsila@iki.fi> writes:
Show 10 quoted lines
> diff --git a/cache.h b/cache.h > index 2a1e7ec..4af6d62 100644 > --- a/cache.h > +++ b/cache.h > @@ -474,10 +474,14 @@ static inline void hashclr(unsigned char *hash) > > int git_mkstemp(char *path, size_t n, const char *template); > > +/* Warning: enum sharedrepo item order should not be changed since it will > + * break backwards compatibility. */
That's not a "Warning" (which tends to mean "you can violate this if you know what you are doing"), but should be stronger than that. Something like (also notice the multi-line comment style --- the first line ends with "/*\n"):
/* * NOTE NOTE NOTE!! * * Do not reorder this list; numerically written core.sharedrepository * in config files have always been valid, and you would break existing * repositories if you move these around. */
Show 8 quoted lines
> enum sharedrepo {
> PERM_UMASK = 0,
> PERM_GROUP,
> - PERM_EVERYBODY
> + PERM_EVERYBODY,
> + PERM_GROUP_READABLE,
> + PERM_WORLD_READABLE,
> };But I have to wonder if this patch is necessary.
Neither am I convinced if this set is sufficient.
+ /* * PERM_GROUP_READABLE: g+r + * PERM_GROUP: g+rw + * PERM_WORLD_READABLE: g+r, o+r + * PERM_EVERYBODY: g+rw, o+r + */
For example, you may want to enforce "ug+rw,o=" in a repository. How would you do that?
Perhaps if you really wanted to have such a fine grained control, you would be better off defining core.sharedrepository as a set/unset pair?
core.sharedrepository = 0660,007 ;# ug+rw,o-rwx
Or even stronger "set to this bit pattern"?
core.sharedrepository = 0660 ;# ug=rw,o=
(I think you would need to flip executable bit for directories if you go this route).