Re: undocumented core.sharedRepository=2 set by git init --shared=world
- From
John Keeping <john@keeping.me.uk>
- Date
- Jul 7, 2015, 11:52 UTC
- Message-ID
- <20150707115205.GD18226@serenity.lan>
- In-Reply-To
- <b1139f60dde3533e12d13e4b0f6584f2@www.dscho.org>
On Tue, Jul 07, 2015 at 01:32:13PM +0200, Johannes Schindelin wrote:
Show 39 quoted lines
> Hi John, > > On 2015-07-07 11:10, John Keeping wrote: > > On Tue, Jul 07, 2015 at 10:14:28AM +0200, Johannes Schindelin wrote: > >> Hi Joey, > >> > >> On 2015-07-06 21:25, Joey Hess wrote: > >> > joey@darkstar:~/tmp>git init --shared=world testrepo > >> > Initialized empty shared Git repository in /home/joey/tmp/testrepo/.git/ > >> > joey@darkstar:~/tmp>grep shared testrepo/.git/config > >> > sharedrepository = 2 > >> > > >> > This magic value of 2 seems to be undocumented, as is the magic value of 1 > >> > that's equvilant to "group". > >> > > >> > I think it would be better to have git init put in "world" or "group" and not > >> > these magic values. Anyway, I suppose they ought to be documented too. > >> > >> The rationale can be found here: > >> https://github.com/git/git/blob/v2.4.5/builtin/init-db.c#L413-L418 > >> > >> /* We do not spell "group" and such, so that > >> * the configuration can be read by older version > >> * of git. Note, we use octal numbers for new share modes, > >> * and compatibility values for PERM_GROUP and > >> * PERM_EVERYBODY. > >> */ > >> > >> I am sympathetic to your wish, of course, and I am sure that you > >> understand why we cannot simply break other people's setups to satisfy > >> it. > > > > That comment was added in 94df250 (shared repository: optionally allow > > reading to "others"., 2006-06-09) which was in 1.4.1. I suspect that is > > now sufficiently old that it no longer matters. > > I understand your point of view. With my maintainer hat on I have to > say, though, that things like that require a major version change. > Users tend to appreciate such a careful maintenance.
However, there has been a major version since the new syntax was introduced (in the same commit mentioned above), so this only affects users who initialize a repository with (say) 2.6.0 or later and then try to use 1.4.0 or earlier to operate on it.
That means using two versions of Git released more than 9 years apart to operate on the same repository. IMHO even careful maintenance can declare that an unsupported configuration.