denyNonFastForwards & co fail outside refs/<heads,tags>

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



config options receive.<denyNonFastForward, denyDeletes> do not work in
nonstandard ref namespaces.  I stumbled over it in refs/notes/, but the
problem is general.  Or if it this intentional, it is the git-config(1)
doc of these options which needs fixing.

Git version 1.7.4.2.


To reproduce:

########################################################################
#!/bin/sh
rm -rf hi ho

git --version

# Create initial repos
git init -q hi
(cd hi
    git config receive.denyDeletes         true
    git config receive.denyNonFastForwards true
    echo foo > foo && git add foo && git commit -q -m first foo)
git clone -q hi ho

# Make them diverge, except the checked-out branch
for r in hi ho; do
    (cd $r
	echo $r >> foo && git commit -q -m next foo
	git update-ref refs/outside/test HEAD
	git checkout -q -b br HEAD^
	# Shut up a bit
	git config advice.pushNonFastForward false
	git gc --quiet
	# For ssh push
	git update-server-info)
done

cd ho
# Optional; makes no difference
#git config remote.origin.pushurl localhost:`pwd`/../hi

# Can push test despite 'deny's, fails as expeceted for master:
for b in refs/outside/test refs/heads/master; do
    git push -f origin $b:$b
    git push -f origin   :$b
    echo ""
done
# Just to check: Pushing the master normal way fails the same way.
git push -f origin


########################################################################
Output:

git version 1.7.4.2
To /tmp/hi
 + 1bb5836...5bf63f8 refs/outside/test -> refs/outside/test (forced update)
To /tmp/hi
 - [deleted]         refs/outside/test

remote: error: denying non-fast-forward refs/heads/master (you should pull first)        
To /tmp/hi
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to '/tmp/hi'
remote: error: denying ref deletion for refs/heads/master        
To /tmp/hi
 ! [remote rejected] master (deletion prohibited)
error: failed to push some refs to '/tmp/hi'

remote: error: denying non-fast-forward refs/heads/master (you should pull first)        
To /tmp/hi
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to '/tmp/hi'

-- 
Hallvard
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]