Make git-pull complain and give advice when there is nothing to merge with

Signed-off-by: Federico Mena Quintero <federico@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/git-pull.sh b/git-pull.sh
index c3f05f5..74bfc16 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -97,10 +97,24 @@
 	esac
 	curr_branch=${curr_branch#refs/heads/}
 
-	echo >&2 "Warning: No merge candidate found because value of config option
-         \"branch.${curr_branch}.merge\" does not match any remote branch fetched."
-	echo >&2 "No changes."
-	exit 0
+	echo >&2 "You asked me to pull without telling me which branch you"
+	echo >&2 "want to merge with, and 'branch.${curr_branch}.merge' in"
+	echo >&2 "your configuration file does not tell me either.  Please"
+	echo >&2 "name which branch you want to merge on the command line and"
+	echo >&2 "try again (e.g. 'git pull <repository> <refspec>')."
+	echo >&2 "See git-pull(1) for details on the refspec."
+	echo >&2
+	echo >&2 "If you often merge with the same branch, you may want to"
+	echo >&2 "configure the following variables in your configuration"
+	echo >&2 "file:"
+	echo >&2
+	echo >&2 "    branch.${curr_branch}.remote = <nickname>"
+	echo >&2 "    branch.${curr_branch}.merge = <remote-ref>"
+	echo >&2 "    remote.<nickname>.url = <url>"
+	echo >&2 "    remote.<nickname>.fetch = <refspec>"
+	echo >&2
+	echo >&2 "See git-config(1) for details."
+	exit 1
 	;;
 ?*' '?*)
 	if test -z "$orig_head"