git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Make core.sharedRepository more generic (version 3)

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 15, 2008, 01:28 UTC
Message-ID
<7v7iez7voz.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<20080415004246.GA13178@zakalwe.fi>
Heikki Orsila <heikki.orsila@iki.fi> writes:
> Version 2 handles the directory x flags better than version 1.
>
> Version 3 removes a warning for the o+w case, fixes a compatibility
> problem with older Git's, and corrects some style issues.

These four lines should come after "---", as you will have only one commit in the history for this topic, and the original and the version 2 won't be there.

Show 16 quoted lines
> diff --git a/builtin-init-db.c b/builtin-init-db.c
> index 2854868..f49fea0 100644
> --- a/builtin-init-db.c
> +++ b/builtin-init-db.c
> @@ -400,9 +400,12 @@ 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.
>  		 */
> -		sprintf(buf, "%d", shared_repository);
> +		if (shared_repository <= 2)
> +			sprintf(buf, "%d", shared_repository);
> +		else
> +			sprintf(buf, "0%o", shared_repository);

Hmmmm. shared_repostiory variable is assigned the return value of git_config_perm() and that function does not return OLD_* variants (which is a good thing to do), so I do not think if it can ever be "<= 2".

When running "git init" without "--shared" or "--shared=<something>" in an repository already initialized with git 1.5.5 or order as "shared", I think you rewrite .git/config to use 0660. You would need something like this instead:

	if (shared_repository == PERM_GROUP)
        	strcpy(buf, "1");
	else if (shared_repository == PERM_EVERYBODY))
        	strcpy(buf, "2");
	else ...
Show 5 quoted lines
> +	/*
> +	 * Mask filemode value. Others can not get write permission.
> +	 * x flags for directories are handled separately.
> +	 */
> +	return i & 0664;

You are still dropping o+w even when the user explicitly asks for it, and you are not telling that you are disobeying the user anymore.

Previous: Heikki Orsila
Message 2 of 2 in “Make core.sharedRepository more generic (version 3)”
  1. Make core.sharedRepository more generic (version 3)Heikki Orsila, Apr 15, 2008
  2. Junio C HamanoApr 15, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.