# undocumented core.sharedRepository=2 set by git init --shared=world

6 messages from 2015-07-06 to 2015-07-07. Participants: Joey Hess, Torsten Bögershausen, Johannes Schindelin, John Keeping.
Thread: https://gitlist.dev/t/39790

## Joey Hess, 2015-07-06 19:25

Subject: undocumented core.sharedRepository=2 set by git init --shared=world
Message-ID: <20150706192547.GA15396@kitenet.net>
URL: https://gitlist.dev/e/20150706192547.GA15396%40kitenet.net

```
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.

-- 
see shy jo

```

## Torsten Bögershausen, 2015-07-07 06:44

Subject: Re: undocumented core.sharedRepository=2 set by git init --shared=world
Message-ID: <559B756A.2040202@web.de>
URL: https://gitlist.dev/e/559B756A.2040202%40web.de
In-Reply-To: <20150706192547.GA15396@kitenet.net>

```
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. 
Thanks for the report.
Changing the behavior of Git may cause problems with
- older versions of Git
- Other implementations of Git, like JGit, libgit2, ...

Did you check what these implementations do ?

Anyway, I suppose they ought to be documented too.
> 
Yes.
Do you want to send a patch ?

```

## Johannes Schindelin, 2015-07-07 08:14

Subject: Re: undocumented core.sharedRepository=2 set by git init --shared=world
Message-ID: <b9f56a351da062698ad629d77d3752b7@www.dscho.org>
URL: https://gitlist.dev/e/b9f56a351da062698ad629d77d3752b7%40www.dscho.org
In-Reply-To: <20150706192547.GA15396@kitenet.net>

```
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.

Ciao,
Johannes

```

## John Keeping, 2015-07-07 09:10

Subject: Re: undocumented core.sharedRepository=2 set by git init --shared=world
Message-ID: <20150707091044.GC18226@serenity.lan>
URL: https://gitlist.dev/e/20150707091044.GC18226%40serenity.lan
In-Reply-To: <b9f56a351da062698ad629d77d3752b7@www.dscho.org>

```
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.

```

## Johannes Schindelin, 2015-07-07 11:32

Subject: Re: undocumented core.sharedRepository=2 set by git init --shared=world
Message-ID: <b1139f60dde3533e12d13e4b0f6584f2@www.dscho.org>
URL: https://gitlist.dev/e/b1139f60dde3533e12d13e4b0f6584f2%40www.dscho.org
In-Reply-To: <20150707091044.GC18226@serenity.lan>

```
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.

Ciao,
Johannes

```

## John Keeping, 2015-07-07 11:52

Subject: Re: undocumented core.sharedRepository=2 set by git init --shared=world
Message-ID: <20150707115205.GD18226@serenity.lan>
URL: https://gitlist.dev/e/20150707115205.GD18226%40serenity.lan
In-Reply-To: <b1139f60dde3533e12d13e4b0f6584f2@www.dscho.org>

```
On Tue, Jul 07, 2015 at 01:32:13PM +0200, Johannes Schindelin wrote:
> 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.

```
