[PATCH] git-pull: refuse default merge without branch.*.merge
- From
Junio C Hamano <junkio@cox.net>
- Date
- Dec 16, 2006, 09:36 UTC
- Message-ID
- <7v3b7gji73.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <7vfybgjj7k.fsf@assigned-by-dhcp.cox.net>
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>
--- Junio C Hamano <junkio@cox.net> writes:
Show 5 quoted lines
> We could also lose the "primary branch" mapping at the > beginning, but that has to wait until we implement the "forbid > 'git pull' when we do not have branch.$current.merge for the > current branch" policy we earlier discussed. That should also > be in v1.5.0
And this does exactly that.
git-parse-remote.sh | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/git-parse-remote.sh b/git-parse-remote.sh index 6ae534b..7cd79c2 100755 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -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