From: "Carlos Martín Nieto" <cmn@elego.de>
To: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Cc: git@vger.kernel.org
Subject: [PATCH] Make git-{pull,rebase} message without tracking information friendlier
Date: Wed, 29 Feb 2012 19:41:54 +0100 [thread overview]
Message-ID: <1330540914-14515-1-git-send-email-cmn@elego.de> (raw)
In-Reply-To: <vpqbooit61u.fsf@bauges.imag.fr>
The current message is too long and at too low a level for anybody to
understand it if they don't know about the configuration format
already.
The text about setting up a remote is superfluous and doesn't help
understand the error that has happened. Explain how to set up the
tracking information, as it's the most likely way to get to the state
the user was expecting.
Also simplify the message we print on detached HEAD to remove clutter
and a reference to branch.<branchname>.merge which is better left for
the documentation.
---
This still needs some shell scripting to figure out whether we'd want
to replace <remote> with a real value. The text gets to the matter of
things and even tells you how to fix it. More text doesn't really add
more useful information, and this isn't a manpage.
I've left the branch --set-upstream in this version as it's probably
the most usual fix for a failing git push.
git-parse-remote.sh | 32 ++++++++++----------------------
git-pull.sh | 2 +-
git-rebase.sh | 2 +-
3 files changed, 12 insertions(+), 24 deletions(-)
diff --git a/git-parse-remote.sh b/git-parse-remote.sh
index b24119d..08adc90 100644
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh
@@ -60,31 +60,19 @@ error_on_missing_default_upstream () {
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').
+tracking information in your configuration file.
+Please specify which branch you want to $op_type $op_prep.
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>
+ $example"
+ else
+ echo "You asked me to $cmd without specifying a branch to
+$op_type $op_prep, and the current branch doesn't have any tracking
+information. Please specify a branch and try again. See git-${cmd}(1)
+for details. To set the tracking information, you can use
-See git-config(1) for details."
+ git branch --set-upstream ${branch_name#refs/heads/} <remote>/<branch>
+"
fi
exit 1
}
diff --git a/git-pull.sh b/git-pull.sh
index d8b64d7..309c7db 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -176,7 +176,7 @@ error_on_no_merge_candidates () {
elif [ -z "$curr_branch" -o -z "$upstream" ]; then
. git-parse-remote
error_on_missing_default_upstream "pull" $op_type $op_prep \
- "git pull <repository> <refspec>"
+ "git pull <remote> <branch>"
else
echo "Your configuration specifies to $op_type $op_prep the ref '${upstream#refs/heads/}'"
echo "from the remote, but no such ref was fetched."
diff --git a/git-rebase.sh b/git-rebase.sh
index 00ca7b9..69c1374 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -380,7 +380,7 @@ then
then
. git-parse-remote
error_on_missing_default_upstream "rebase" "rebase" \
- "against" "git rebase <upstream branch>"
+ "against" "git rebase <branch>"
fi
;;
*) upstream_name="$1"
--
1.7.8.352.g876a6f
next prev parent reply other threads:[~2012-02-29 18:42 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-23 16:05 [RFC/PATCH] Make git-{pull,rebase} no-tracking message friendlier Carlos Martín Nieto
2012-02-23 20:28 ` Junio C Hamano
2012-02-27 17:07 ` Carlos Martín Nieto
2012-02-27 22:06 ` Matthieu Moy
2012-02-29 3:57 ` Carlos Martín Nieto
2012-02-29 8:09 ` Matthieu Moy
2012-02-29 17:34 ` Carlos Martín Nieto
2012-02-29 18:41 ` Carlos Martín Nieto [this message]
2012-02-29 20:14 ` [PATCH] Make git-{pull,rebase} message without tracking information friendlier Junio C Hamano
2012-03-04 4:41 ` Carlos Martín Nieto
2012-03-05 7:49 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1330540914-14515-1-git-send-email-cmn@elego.de \
--to=cmn@elego.de \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).