threads / discuss / 22422

shared permissions on COMMIT_EDITMSG

Subject: shared permissions on COMMIT_EDITMSG

## tl;dr

4 messages between Jan 28, 2010 and Jan 28, 2010.

replies: 3people: 3as markdown or json

William Pursell· Jan 28, 2010, 09:19 UTC · lore

With git-init --shared=0660 and a umask of 022, the first commit to the repository creates the file COMMIT_EDITMSG with mode 0644 instead of 0660. I believe this is incorrect behavior. Simple fix:

diff --git a/builtin-commit.c b/builtin-commit.c
index 55676fd..06ce94d 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -687,6 +687,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
 	}

 	fclose(fp);
+	adjust_shared_perm(git_path(commit_editmsg));

 	if (!commitable && !in_merge && !allow_empty &&
 	    !(amend && is_a_merge(head_sha1))) {
-- 
William Pursell
Ilari Liusvaara· Jan 28, 2010, 11:14 UTC · re: William Pursell · lore

Re: shared permissions on COMMIT_EDITMSG

On Wed, Jan 27, 2010 at 11:19:22PM -1000, William Pursell wrote:
Show 5 quoted lines
> With git-init --shared=0660 and a umask of 022,
> the first commit to the repository creates
> the file COMMIT_EDITMSG with mode 0644
> instead of 0660.  I believe this is incorrect
> behavior.  Simple fix:
 
COMMIT_EDITMSG is related to committing, committing needs
working copy, and shared working copies don't work all too
well (and Git can't do anything about that because all kinds
of stuff edits the files there, not just Git).

Shared repository settings are meant to override umasks for files in actual repository itself.

-Ilari
William Pursell· Jan 28, 2010, 17:03 UTC · re: Ilari Liusvaara · lore

Re: shared permissions on COMMIT_EDITMSG

Ilari Liusvaara wrote:
Show 14 quoted lines
> On Wed, Jan 27, 2010 at 11:19:22PM -1000, William Pursell wrote:
>> With git-init --shared=0660 and a umask of 022,
>> the first commit to the repository creates
>> the file COMMIT_EDITMSG with mode 0644
>> instead of 0660.  I believe this is incorrect
>> behavior.  Simple fix:
>  
> COMMIT_EDITMSG is related to committing, committing needs
> working copy, and shared working copies don't work all too
> well (and Git can't do anything about that because all kinds
> of stuff edits the files there, not just Git).
> 
> Shared repository settings are meant to override umasks
> for files in actual repository itself.

For simple work flows (eg recording linear history of config files), sharing a working directory works okay except for COMMIT_EDITMSG. Since COMMIT_EDITMSG is in the git repository and only written by git, it makes sense for core.sharedrepository to be honored.

-- 
William Pursell
demerphq· Jan 28, 2010, 17:57 UTC · re: William Pursell · lore

Re: shared permissions on COMMIT_EDITMSG

2010/1/28 William Pursell <bill.pursell@gmail.com>:
Show 22 quoted lines
> Ilari Liusvaara wrote:
>> On Wed, Jan 27, 2010 at 11:19:22PM -1000, William Pursell wrote:
>>> With git-init --shared=0660 and a umask of 022,
>>> the first commit to the repository creates
>>> the file COMMIT_EDITMSG with mode 0644
>>> instead of 0660.  I believe this is incorrect
>>> behavior.  Simple fix:
>>
>> COMMIT_EDITMSG is related to committing, committing needs
>> working copy, and shared working copies don't work all too
>> well (and Git can't do anything about that because all kinds
>> of stuff edits the files there, not just Git).
>>
>> Shared repository settings are meant to override umasks
>> for files in actual repository itself.
>
> For simple work flows (eg recording linear history
> of config files), sharing a working directory
> works okay except for COMMIT_EDITMSG.  Since
> COMMIT_EDITMSG is in the git repository and only
> written by git, it makes sense for core.sharedrepository
> to be honored.

I agree. And personally ive used shared working directories quite a bit without issue. Thanks be to git --interactive.

cheers, Yves

-- 
perl -Mre=debug -e "/just|another|perl|hacker/"

← back to recent threads