Merge branch 'jc/maint-shared-literally' into maint

* jc/maint-shared-literally:
  Update docs on behaviour of 'core.sharedRepository' and 'git init --shared'
  t1301-shared-repo: fix forced modes test
This commit is contained in:
Junio C Hamano 2009-04-19 12:40:05 -07:00
Родитель 67daebfd3b 098082fb78
Коммит 5027acc4db
3 изменённых файлов: 23 добавлений и 11 удалений

Просмотреть файл

@ -290,8 +290,10 @@ core.sharedRepository::
group-shareable. When 'umask' (or 'false'), git will use permissions
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
files in the repository will have this mode value. '0xxx' will override
user's umask value, and thus, users with a safe umask (0077) can use
this option. Examples: '0660' is equivalent to 'group'. '0640' is a
user's umask value (whereas the other options will only override
requested parts of the user's umask value). Examples: '0660' will make
the repo read/write-able for the owner and group, but inaccessible to
others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
repository that is group-readable but not group-writable.
See linkgit:git-init[1]. False by default.

Просмотреть файл

@ -54,15 +54,21 @@ is given:
- 'group' (or 'true'): Make the repository group-writable, (and g+sx, since
the git group may be not the primary group of all users).
This is used to loosen the permissions of an otherwise safe umask(2) value.
Note that the umask still applies to the other permission bits (e.g. if
umask is '0022', using 'group' will not remove read privileges from other
(non-group) users). See '0xxx' for how to exactly specify the repository
permissions.
- 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository
readable by all users.
- '0xxx': '0xxx' is an octal number and each file will have mode '0xxx'
Any option except 'umask' can be set using this option. '0xxx' will
override users umask(2) value, and thus, users with a safe umask (0077)
can use this option. '0640' will create a repository which is group-readable
but not writable. '0660' is equivalent to 'group'.
- '0xxx': '0xxx' is an octal number and each file will have mode '0xxx'.
'0xxx' will override users' umask(2) value (and not only loosen permissions
as 'group' and 'all' does). '0640' will create a repository which is
group-readable, but not group-writable or accessible to others. '0660' will
create a repo that is readable and writable to the current user and group,
but inaccessible to others.
By default, the configuration flag receive.denyNonFastForwards is enabled
in shared repositories, so that you cannot force a non fast-forwarding push

Просмотреть файл

@ -141,11 +141,14 @@ test_expect_success 'forced modes' '
git commit -a -m initial &&
git repack
) &&
find new/.git -print |
# List repository files meant to be protected; note that
# COMMIT_EDITMSG does not matter---0mode is not about a
# repository with a work tree.
find new/.git -type f -name COMMIT_EDITMSG -prune -o -print |
xargs ls -ld >actual &&
# Everything must be unaccessible to others
test -z "$(sed -n -e "/^.......---/d" actual)" &&
test -z "$(sed -e "/^.......---/d" actual)" &&
# All directories must have either 2770 or 770
test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" &&
@ -156,10 +159,11 @@ test_expect_success 'forced modes' '
p
}" actual)" &&
# All files inside objects must be 0440
# All files inside objects must be accessible by us
test -z "$(sed -n -e "/objects\//{
/^d/d
/^-r--r-----/d
/^-r.-r.----/d
p
}" actual)"
'