Re: git /objects directory created 755 by default?
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Dec 22, 2005, 14:37 UTC
- Message-ID
- <Pine.LNX.4.63.0512221530570.18551@wbgn013.biozentrum.uni-wuerzburg.de>
- In-Reply-To
- <43AA9BE6.7000601@op5.se>
Hi,
On Thu, 22 Dec 2005, Andreas Ericsson wrote:
Show 22 quoted lines
> Johannes Schindelin wrote: > > > > Okay, so there you are. You have a write-shared repository with the HEAD > > checked out. Somebody wants to push to that with different credentials than > > the user who checked out the files. Do you plainly deny updating the current > > HEAD? > > > > If you do, then you better give the pushing user (pun intended) a way to > > update the checked out files. You can do this by (tadaah) setting the umask > > to 0002 also for working files. > > > > Ahh. Sorry. We use this method a lot, really, but always only for running gitk > and archaeology tools to check newly pushed changes, so the write-shared repo > is only write-shared for remote users, and the local one never does a commit. > It's perhaps a bit of a weird setup, but it lets you get an overview faster > than gitweb and works well enough with samba. Noted should be that having the > repo checked out is merely a convenience thing to let one browse the files at > leisure. People know to do > git checkout -f HEAD > > whenever they want to dig around.
Better to do this with a post-update hook, right? You can't forget to checkout this way. *Plus* you can make sure the umask is correct in the hook.
Show 16 quoted lines
> > Yes, we could find out exactly where writes happen inside GIT_DIR and plug > > in shared.umask which is only applied in these cases, but I am totally > > unconvinced that this is worth the hassle. In my cases, I am perfectly > > helped by a umask which is respected throughout git, and the patch is simple > > enough to be reviewed in 5 minutes. > > > > But adding > > umask 002 > > to /etc/bashrc would do exactly the same thing, so why have it a setting for > the repository only? In my experience, most servers used for hosting git repos > host *lots* of them (look at master.kernel.org), so a server-wide setting > really makes much more sense. If the server admin can't be bothered you can > always change $HOME/.bashrc.
In my very special setup, it is a server on which you have your personal files, too. So, setting umask = 0002 globally is not an option.
Furthermore, it just feels wrong to set an option outside of git which is meant *only* for git usage.
> So long as people remember that .bash_profile isn't read for non-interactive > shells this should do nicely. If they can't remember that they won't remember > adding the setting to the repository either.
Problem is, what if one of your users is a tcsh zealot? Or simply forgot to set it. Trouble in China. Also, I simply can not memorize what startup script gets called when.
Ciao, Dscho