git-remote-testgit: fix error handling
[gitweb.git] / git-parse-remote.sh
index ea093d251d98af6a3d4df19e900d56df34d51572..b24119d69c092e3bd345cff1b6bafd48f5fd1e1b 100644 (file)
@@ -50,3 +50,41 @@ get_remote_merge_branch () {
            esac
        esac
 }
+
+error_on_missing_default_upstream () {
+       cmd="$1"
+       op_type="$2"
+       op_prep="$3"
+       example="$4"
+       branch_name=$(git symbolic-ref -q HEAD)
+       if test -z "$branch_name"
+       then
+               echo "You are not currently on a branch, so I cannot use any
+'branch.<branchname>.merge' in your configuration file.
+Please specify which branch you want to $op_type $op_prep on the command
+line and try again (e.g. '$example').
+See git-${cmd}(1) for details."
+       else
+               echo "You asked me to $cmd without telling me which branch you
+want to $op_type $op_prep, and 'branch.${branch_name#refs/heads/}.merge' in
+your configuration file does not tell me, either. Please
+specify which branch you want to use on the command line and
+try again (e.g. '$example').
+See git-${cmd}(1) for details.
+
+If you often $op_type $op_prep the same branch, you may want to
+use something like the following in your configuration file:
+    [branch \"${branch_name#refs/heads/}\"]
+    remote = <nickname>
+    merge = <remote-ref>"
+               test rebase = "$op_type" &&
+               echo "    rebase = true"
+               echo "
+    [remote \"<nickname>\"]
+    url = <url>
+    fetch = <refspec>
+
+See git-config(1) for details."
+       fi
+       exit 1
+}