提交 5027acc4 编写于 作者: J Junio C Hamano

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
...@@ -290,8 +290,10 @@ core.sharedRepository:: ...@@ -290,8 +290,10 @@ core.sharedRepository::
group-shareable. When 'umask' (or 'false'), git will use permissions group-shareable. When 'umask' (or 'false'), git will use permissions
reported by umask(2). When '0xxx', where '0xxx' is an octal number, reported by umask(2). When '0xxx', where '0xxx' is an octal number,
files in the repository will have this mode value. '0xxx' will override 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 user's umask value (whereas the other options will only override
this option. Examples: '0660' is equivalent to 'group'. '0640' is a 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. repository that is group-readable but not group-writable.
See linkgit:git-init[1]. False by default. See linkgit:git-init[1]. False by default.
......
...@@ -54,15 +54,21 @@ is given: ...@@ -54,15 +54,21 @@ is given:
- 'group' (or 'true'): Make the repository group-writable, (and g+sx, since - 'group' (or 'true'): Make the repository group-writable, (and g+sx, since
the git group may be not the primary group of all users). 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 - 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository
readable by all users. readable by all users.
- '0xxx': '0xxx' is an octal number and each file will have mode '0xxx' - '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 '0xxx' will override users' umask(2) value (and not only loosen permissions
override users umask(2) value, and thus, users with a safe umask (0077) as 'group' and 'all' does). '0640' will create a repository which is
can use this option. '0640' will create a repository which is group-readable group-readable, but not group-writable or accessible to others. '0660' will
but not writable. '0660' is equivalent to 'group'. 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 By default, the configuration flag receive.denyNonFastForwards is enabled
in shared repositories, so that you cannot force a non fast-forwarding push in shared repositories, so that you cannot force a non fast-forwarding push
......
...@@ -141,11 +141,14 @@ test_expect_success 'forced modes' ' ...@@ -141,11 +141,14 @@ test_expect_success 'forced modes' '
git commit -a -m initial && git commit -a -m initial &&
git repack 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 && xargs ls -ld >actual &&
# Everything must be unaccessible to others # 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 # All directories must have either 2770 or 770
test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" && test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" &&
...@@ -156,10 +159,11 @@ test_expect_success 'forced modes' ' ...@@ -156,10 +159,11 @@ test_expect_success 'forced modes' '
p p
}" actual)" && }" actual)" &&
# All files inside objects must be 0440 # All files inside objects must be accessible by us
test -z "$(sed -n -e "/objects\//{ test -z "$(sed -n -e "/objects\//{
/^d/d /^d/d
/^-r--r-----/d /^-r.-r.----/d
p
}" actual)" }" actual)"
' '
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册