Browse Source

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>
maint
Johannes Schindelin 19 years ago committed by Junio C Hamano
parent
commit
199a92186b
  1. 7
      Documentation/config.txt
  2. 4
      Documentation/git-init-db.txt
  3. 2
      Documentation/git-receive-pack.txt
  4. 14
      t/t5400-send-pack.sh

7
Documentation/config.txt

@ -267,3 +267,10 @@ whatchanged.difftree:: @@ -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.


4
Documentation/git-init-db.txt

@ -48,6 +48,10 @@ is given: @@ -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.

--



2
Documentation/git-receive-pack.txt

@ -73,6 +73,8 @@ packed and is served via a dumb transport. @@ -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
-------

14
t/t5400-send-pack.sh

@ -64,4 +64,18 @@ test_expect_success \ @@ -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…
Cancel
Save