Fix fetch/pull when run without --update-head-ok
commit8ee5d73137f355c21e8d4db365ae8d301e067395
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Mon, 13 Oct 2008 09:36:52 +0000 (13 11:36 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Oct 2008 17:46:03 +0000 (13 10:46 -0700)
tree2e5533f1ead7ccca423efa95004d66eda2b72ef8
parent97a7a82f199f165f85fe39a3c318b18c621e6335
Fix fetch/pull when run without --update-head-ok

Some confusing tutorials suggested that it would be a good idea to fetch
into the current branch with something like this:

git fetch origin master:master

(or even worse: the same command line with "pull" instead of "fetch").
While it might make sense to store what you want to pull, it typically is
plain wrong when the current branch is "master".  This should only be
allowed when (an incorrect) "git pull origin master:master" tries to work
around by giving --update-head-ok to underlying "git fetch", and otherwise
we should refuse it, but somewhere along the lines we lost that behavior.

The check for the current branch is now _only_ performed in non-bare
repositories, which is an improvement from the original behaviour.

Some newer tests were depending on the broken behaviour of "git fetch"
this patch fixes, and have been adjusted.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-fetch.c
t/t5405-send-pack-rewind.sh
t/t5505-remote.sh
t/t5510-fetch.sh
t/t9300-fast-import.sh