quoted
quoted
quoted
quoted
"Ed" == Ed Schofield [off-list ref] writes:
Ed> I have now run "git --bare init --shared=group" to reinitialize
Ed> the repository. This seems to have changed the directories to be
Ed> g+sx. (Is this all it did?). There are still some objects
Ed> directories with 755 permissions rather than 770, which I presume
Ed> I want, and the group ownership of these is wrong. Shall I change
Ed> these by hand? The sha1 files all have 444 permissions; is this
Ed> right?
Ed> The last question I have is how to ensure that git creates object
Ed> files etc. with the right permissions when users push in future.
As Marc said, you should first make sure that "config" contains
"sharedrepository = 1" in the "[core]" section.
Then you can do the following:
- remove all permissions for "others": chmod -R o-rwx .
- mirror "user" permissions to "group": chmod -R g=u .
- add +s flag to directories: find . -type d | xargs chmod g+s
This should fix your current situation. The "sharedrepository = 1"
will tell git to maintain a proper shared state in the future
on objects it creates (i.e. mirror "user" permission to "group" ones).
Sam
--
Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/
On Thu, Oct 9, 2008 at 10:41 PM, Samuel Tardieu [off-list ref] wrote:
quoted
quoted
quoted
quoted
quoted
"Ed" == Ed Schofield [off-list ref] writes:
Ed> I have now run "git --bare init --shared=group" to reinitialize
Ed> the repository. This seems to have changed the directories to be
Ed> g+sx. (Is this all it did?). There are still some objects
Ed> directories with 755 permissions rather than 770, which I presume
Ed> I want, and the group ownership of these is wrong. Shall I change
Ed> these by hand? The sha1 files all have 444 permissions; is this
Ed> right?
Ed> The last question I have is how to ensure that git creates object
Ed> files etc. with the right permissions when users push in future.
As Marc said, you should first make sure that "config" contains
"sharedrepository = 1" in the "[core]" section.
Then you can do the following:
- remove all permissions for "others": chmod -R o-rwx .
- mirror "user" permissions to "group": chmod -R g=u .
- add +s flag to directories: find . -type d | xargs chmod g+s
This should fix your current situation. The "sharedrepository = 1"
will tell git to maintain a proper shared state in the future
on objects it creates (i.e. mirror "user" permission to "group" ones).
This worked beautifully. Thanks Sam, thanks Marc!
-- Ed
Samuel Tardieu wrote:
This should fix your current situation. The "sharedrepository = 1"
will tell git to maintain a proper shared state in the future
on objects it creates (i.e. mirror "user" permission to "group" ones).
Is git-gc supposed to respect sharedrepository=1 and create
group-writable files?
For me, it's recreating the files under logs/refs/heads with 644
permissions.
BR,
- Samuel