pull: Clarify "helpful" message for another corner case
authorJunio C Hamano <gitster@pobox.com>
Sun, 13 Sep 2009 20:38:48 +0000 (13:38 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Sep 2009 05:26:27 +0000 (22:26 -0700)
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>
git-pull.sh
index 0bbd5bf7df185acd24302f9e5ce06e4a314d040a..edf3ce33bf073c67f65cba0b796e0f9a178b810b 100755 (executable)
@@ -89,6 +89,7 @@ error_on_no_merge_candidates () {
        done
 
        curr_branch=${curr_branch#refs/heads/}
+       upstream=$(git config "branch.$curr_branch.merge")
 
        if [ -z "$curr_branch" ]; then
                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 "line and try again (e.g. 'git pull <repository> <refspec>')."
                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 "want to merge with, and 'branch.${curr_branch}.merge' in"
                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
                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
        exit 1
 }