pull: Clarify "helpful" message for another corner case

When the remote branch we asked for merging did not exist in the set of
fetched refs, we unconditionally hinted that it was because of lack of
configuration.  It is not necessarily so, and risks sending users for a
wild goose chase.

Make sure to check if that is indeed the case before telling a wild guess
to the user.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2009-09-13 13:38:48 -07:00
parent 3ddcb1981b
commit a6dbf8814f

View File

@ -89,6 +89,7 @@ error_on_no_merge_candidates () {
done done
curr_branch=${curr_branch#refs/heads/} curr_branch=${curr_branch#refs/heads/}
upstream=$(git config "branch.$curr_branch.merge")
if [ -z "$curr_branch" ]; then if [ -z "$curr_branch" ]; then
echo "You are not currently on a branch, so I cannot use any" echo "You are not currently on a branch, so I cannot use any"
@ -96,7 +97,7 @@ error_on_no_merge_candidates () {
echo "Please specify which branch you want to merge on the command" echo "Please specify which branch you want to merge on the command"
echo "line and try again (e.g. 'git pull <repository> <refspec>')." echo "line and try again (e.g. 'git pull <repository> <refspec>')."
echo "See git-pull(1) for details." echo "See git-pull(1) for details."
else elif [ -z "$upstream" ]; then
echo "You asked me to pull without telling me which branch you" echo "You asked me to pull without telling me which branch you"
echo "want to merge with, and 'branch.${curr_branch}.merge' in" echo "want to merge with, and 'branch.${curr_branch}.merge' in"
echo "your configuration file does not tell me either. Please" echo "your configuration file does not tell me either. Please"
@ -114,6 +115,10 @@ error_on_no_merge_candidates () {
echo " remote.<nickname>.fetch = <refspec>" echo " remote.<nickname>.fetch = <refspec>"
echo echo
echo "See git-config(1) for details." echo "See git-config(1) for details."
else
echo "Your configuration specifies to merge the ref"
echo "'${upstream#refs/heads/}' from the remote, but no such ref"
echo "was fetched."
fi fi
exit 1 exit 1
} }