On using receive.denyNonFastForwards and advice.pushNonFastForward
- From
- Hilco Wijbenga <hilco.wijbenga@gmail.com>
- Date
- Jul 8, 2012, 21:26 UTC
- Message-ID
- <CAE1pOi1M-fdMJtZw9MNL2R6zWvpXvWVo4ros_NSCQtLmQb6TOQ@mail.gmail.com>
Hi all,
I was wondering how hard it would be to make "git push" more adamant about not pushing non-ff updates. So I wanted to see the effects of receive.denyNonFastForwards and advice.pushNonFastForward. (By the way, why is one plural and the other singular? That doesn't seem consistent?)
HERE=$(pwd) && git init --bare remote-repo && cd remote-repo/ && git config --add receive.denyNonFastForwards true && cd .. && git clone file://$HERE/remote-repo local-repo && cd local-repo/ && git config --add advice.pushNonFastForward true && echo "1" > one.txt && git add -A . && git commit -m 1 && git push origin master && git checkout -b next && echo "a" > two.txt && git add -A . && git commit -m 2 && git checkout master && echo "2" > one.txt && git add -A . && git commit -m 3 && git push origin master && git merge next && git push
To my surprise there was neither warning nor error. Does this last push really qualify as a FF update? Apparently, linear history and FF-only updates are not the same thing?
Cheers, Hilco