Document receive.denyNonFastforwards
[jc: with a fix to config handling in t5400 test, which took annoyingly long to diagnose.] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
9edd7e4652
commit
199a92186b
@ -267,3 +267,10 @@ whatchanged.difftree::
|
||||
imap::
|
||||
The configuration variables in the 'imap' section are described
|
||||
in gitlink:git-imap-send[1].
|
||||
|
||||
receive.denyNonFastforwads::
|
||||
If set to true, git-receive-pack will deny a ref update which is
|
||||
not a fast forward. Use this to prevent such an update via a push,
|
||||
even if that push is forced. This configuration variable is
|
||||
set when initializing a shared repository.
|
||||
|
||||
|
@ -48,6 +48,10 @@ is given:
|
||||
- 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository
|
||||
readable by all users.
|
||||
|
||||
By default, the configuration flag receive.denyNonFastforward is enabled
|
||||
in shared repositories, so that you cannot force a non fast-forwarding push
|
||||
into it.
|
||||
|
||||
--
|
||||
|
||||
|
||||
|
@ -73,6 +73,8 @@ packed and is served via a dumb transport.
|
||||
There are other real-world examples of using update and
|
||||
post-update hooks found in the Documentation/howto directory.
|
||||
|
||||
git-receive-pack honours the receive.denyNonFastforwards flag, which
|
||||
tells it if updates to a ref should be denied if they are not fast-forwards.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
|
@ -64,4 +64,18 @@ test_expect_success \
|
||||
cmp victim/.git/refs/heads/master .git/refs/heads/master
|
||||
'
|
||||
|
||||
unset GIT_CONFIG GIT_CONFIG_LOCAL
|
||||
HOME=`pwd`/no-such-directory
|
||||
export HOME ;# this way we force the victim/.git/config to be used.
|
||||
|
||||
test_expect_success \
|
||||
'pushing with --force should be denied with denyNonFastforwards' '
|
||||
cd victim &&
|
||||
git-repo-config receive.denyNonFastforwards true &&
|
||||
cd .. &&
|
||||
git-update-ref refs/heads/master master^ &&
|
||||
git-send-pack --force ./victim/.git/ master &&
|
||||
! diff -u .git/refs/heads/master victim/.git/refs/heads/master
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user