From: Andreas Ericsson <ae@op5.se>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: git /objects directory created 755 by default?
Date: Thu, 22 Dec 2005 16:53:13 +0100 [thread overview]
Message-ID: <43AACBE9.7060201@op5.se> (raw)
In-Reply-To: <Pine.LNX.4.63.0512221530570.18551@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin wrote:
> Hi,
>
> On Thu, 22 Dec 2005, Andreas Ericsson wrote:
>
>
>>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.
>
What prevents you from setting umask 002 in the hook? If the files are
already checked out with some other (write-denying) umask by some other
user it will fail regardless of where the umask comes from.
>
>>>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.
>
scp -p preserves the umask you have on your desktop/laptop, so unless
you frequently do
ssh somewhere "echo 'Gawds, this is an awkward way of editing files' >>
somefile"
you should be good with the bashrc setting. You can override it from
bash_profile to make sure you get a safely sane umask when logging in
interactively.
>
>>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.
>
tcsh zealot? Not familiar with that one. If you're trying to cover every
angle I think you'll be in for a disappointment though. Users are
usually fairly ingenious when it comes to finding ways of causing trouble.
As for forgetting to set it, I was talking about the /etc/bashrc file
here. There is a /etc/cshrc as well, although this tcsh zealot shell
might ignore it.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
next prev parent reply other threads:[~2005-12-22 15:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-20 23:25 git /objects directory created 755 by default? Martin Langhoff
2005-12-20 23:43 ` Junio C Hamano
2005-12-21 1:37 ` Junio C Hamano
2005-12-21 2:28 ` Martin Langhoff
2005-12-21 4:53 ` Junio C Hamano
2005-12-21 5:10 ` Martin Langhoff
2005-12-21 5:03 ` Junio C Hamano
2005-12-21 5:15 ` Martin Langhoff
2005-12-21 5:17 ` Junio C Hamano
2005-12-21 5:23 ` Martin Langhoff
2005-12-22 3:46 ` Ben Clifford
2005-12-21 15:35 ` Johannes Schindelin
2005-12-21 22:10 ` Junio C Hamano
2005-12-21 22:20 ` Johannes Schindelin
2005-12-22 9:45 ` Andreas Ericsson
2005-12-22 11:27 ` Johannes Schindelin
2005-12-22 12:28 ` Andreas Ericsson
2005-12-22 14:37 ` Johannes Schindelin
2005-12-22 15:53 ` Andreas Ericsson [this message]
2005-12-22 16:03 ` Johannes Schindelin
2005-12-22 16:52 ` Andreas Ericsson
2005-12-22 17:31 ` Johannes Schindelin
2005-12-22 19:14 ` Junio C Hamano
2005-12-22 19:28 ` Johannes Schindelin
2005-12-22 20:15 ` Junio C Hamano
2005-12-22 20:27 ` Johannes Schindelin
2005-12-23 4:19 ` Junio C Hamano
2005-12-23 12:07 ` Andreas Ericsson
2005-12-22 10:11 ` Alex Riesen
2005-12-22 11:35 ` Johannes Schindelin
2005-12-22 14:38 ` Alex Riesen
2005-12-22 15:09 ` Johannes Schindelin
2005-12-22 15:14 ` Alex Riesen
2005-12-22 15:52 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43AACBE9.7060201@op5.se \
--to=ae@op5.se \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).