Subject: Re: git /objects directory created 755 by default?

From: Andreas Ericsson <[email-masked]>
Date: Thu, 22 Dec 2005 17:52:39 +0100

Johannes Schindelin wrote:
> Hi,
> 
> this is getting silly. The problem is: how to setup a shared repository, 
> i.e. a repository into which different users can push their updates.
> 

You're simplifying. Your question was
"How can I set up a repository for multiple users to write to without 
setting a global umask for non-interactive shells?"

Junio said:
"I agree the setting should not be limited to git-shell, but I do
not think setting "umask" from git configuration is the right
way either.  For files and directories under $GIT_DIR, maybe
imposing the policy git configuration file has is OK, but I
think honoring the user's umask is the right thing for working
tree files."

which I whole-heartedly agree with. I'd be completely furious if a tool 
ignored the umask I use for checking out files of a local repository 
just because I happen to do some work at the machine where the repo is 
stored (I imagine this couldn't possibly affect repositories cloned 
remotely, although that would surely have me going ballistic).

You answered that it would be good for hooks as well, although those can 
set their own umask easily enough (if you forget it there, you'll be 
hastily reminded the first time it breaks, so no real harm done).

The problem as I see it is to update only the $GIT_DIR files with the 
proper umask (or rather, just the objects/ and refs/ directories, since 
$GIT_DIR/. is never touched after being created and the other are for 
repo maintainers only).

Enter the nifty git-receive-pack, which does all the writing when a repo 
is being pushed to, unless bypassed from the /git/foo working tree for 
the /git/foo/.git repository. The latter is already discouraged, so we 
might as well ignore that. It's also nice because it will never mess 
with files that are for the repo maintainer only, although hooks can 
ofcourse do whatever they like to those files provided the repo 
maintainer allows it.

Now it's time to go home, but I'll have a patch by tonight unless you 
beat me to it. :)

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231