git-pull: refuse default merge without branch.*.merge
authorJunio C Hamano <junkio@cox.net>
Sat, 16 Dec 2006 09:36:32 +0000 (01:36 -0800)
committerJunio C Hamano <junkio@cox.net>
Sat, 16 Dec 2006 21:01:41 +0000 (13:01 -0800)
Everybody hated the pull behaviour of merging the first branch
listed on remotes/* file (or remote.*.fetch config) into the
current branch.  This finally corrects that UI wart by
forbidding "git pull" without an explicit branch name on the
command line or branch.$current.merge for the current branch.

The matching change to git-clone was made to prepare the default
branch.*.merge entry for the primary branch some time ago.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-parse-remote.sh

index 6ae534bf89a7a1fd0bfeee4248c37b4ea71290b9..f27c3c231b991b008a67aa1f8438cac7fb9f611f 100755 (executable)
@@ -144,7 +144,8 @@ canon_refs_list_for_fetch () {
                        curr_branch=$(git-symbolic-ref HEAD | \
                            sed -e 's|^refs/heads/||')
                        merge_branches=$(git-repo-config \
-                           --get-all "branch.${curr_branch}.merge")
+                           --get-all "branch.${curr_branch}.merge") ||
+                       merge_branches=.this.would.never.match.any.ref.
                fi
                set x $(expand_refs_wildcard "$@")
                shift