From: Junio C Hamano <gitster@pobox.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: "Jan Krüger" <jk@jk.gs>, "Jeff King" <peff@peff.net>,
"Jan Nieuwenhuizen" <janneke-list@xs4all.nl>,
"Tomas Carnecky" <tom@dbservice.com>,
"git list" <git@vger.kernel.org>
Subject: Re: [PATCH] pull: clarify advice for the unconfigured error case
Date: Wed, 02 Dec 2009 15:08:33 -0800 [thread overview]
Message-ID: <7vk4x57z4e.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20091127141704.GA24080@progeny.tock> (Jonathan Nieder's message of "Fri\, 27 Nov 2009 08\:17\:05 -0600")
Jonathan Nieder <jrnieder@gmail.com> writes:
> From: Jan Krüger <jk@jk.gs>
>
> When pull --rebase fails because it cannot find what branch to
> merge against, the error message implies we are trying to merge.
> Say "rebase against" instead of "merge with" to avoid confusion.
I was going over the mail archive to see if I missed any important fixes
that should be in before 1.6.6 final and noticed that this is not applied,
and there was no follow-up to this message either.
Is this a good replacement for 31971b3 (git-pull.sh --rebase: overhaul
error handling when no candidates are found, 2009-11-12) that is on 'pu'
and does the lack of follow-up mean everybody involved in the discussion
is happy with this version?
> diff --git a/git-pull.sh b/git-pull.sh
> index 37f3d93..2c384c4 100755
> --- a/git-pull.sh
> +++ b/git-pull.sh
> @@ -91,45 +91,63 @@ error_on_no_merge_candidates () {
> esac
> done
>
> + if test true = "$rebase"
> + then
> + op_type=rebase
> + op_prep=against
> + else
> + op_type=merge
> + op_prep=with
> + fi
> +
> curr_branch=${curr_branch#refs/heads/}
> upstream=$(git config "branch.$curr_branch.merge")
> remote=$(git config "branch.$curr_branch.remote")
>
> if [ $# -gt 1 ]; then
> - echo "There are no candidates for merging in the refs that you just fetched."
> + if [ "$rebase" = true ]; then
> + printf "There is no candidate for rebasing against "
> + else
> + printf "There are no candidates for merging "
> + fi
> + echo "among the refs that you just fetched."
> echo "Generally this means that you provided a wildcard refspec which had no"
> echo "matches on the remote end."
> elif [ $# -gt 0 ] && [ "$1" != "$remote" ]; then
> echo "You asked to pull from the remote '$1', but did not specify"
> - echo "a branch to merge. Because this is not the default configured remote"
> + echo "a branch. Because this is not the default configured remote"
> echo "for your current branch, you must specify a branch on the command line."
> elif [ -z "$curr_branch" ]; then
> echo "You are not currently on a branch, so I cannot use any"
> echo "'branch.<branchname>.merge' in your configuration file."
> - echo "Please specify which branch you want to merge on the command"
> + echo "Please specify which remote branch you want to use on the command"
> echo "line and try again (e.g. 'git pull <repository> <refspec>')."
> echo "See git-pull(1) for details."
> 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"
> - echo "specify which branch you want to merge on the command line and"
> + echo "want to $op_type $op_prep, and 'branch.${curr_branch}.merge' in"
> + echo "your configuration file does not tell me, either. Please"
> + echo "specify which branch you want to use on the command line and"
> echo "try again (e.g. 'git pull <repository> <refspec>')."
> echo "See git-pull(1) for details."
> echo
> - echo "If you often merge with the same branch, you may want to"
> - echo "configure the following variables in your configuration"
> - echo "file:"
> + echo "If you often $op_type $op_prep the same branch, you may want to"
> + echo "use something like the following in your configuration file:"
> + echo
> + echo " [branch \"${curr_branch}\"]"
> + echo " remote = <nickname>"
> + echo " merge = <remote-ref>"
> + test rebase = "$op_type" &&
> + echo " rebase = true"
> echo
> - echo " branch.${curr_branch}.remote = <nickname>"
> - echo " branch.${curr_branch}.merge = <remote-ref>"
> - echo " remote.<nickname>.url = <url>"
> - echo " remote.<nickname>.fetch = <refspec>"
> + echo " [remote \"<nickname>\"]"
> + echo " url = <url>"
> + echo " fetch = <refspec>"
> echo
> echo "See git-config(1) for details."
> else
> - echo "Your configuration specifies to merge the ref '${upstream#refs/heads/}' from the"
> - echo "remote, but no such ref was fetched."
> + echo "Your configuration specifies to $op_type $op_prep the ref '${upstream#refs/heads/}'"
> + echo "from the remote, but no such ref was fetched."
> fi
> exit 1
> }
> --
> 1.6.5.3
next prev parent reply other threads:[~2009-12-02 23:08 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-11 13:22 Unhelpful "branch.master.remote = <nickname>" advice? Jan Nieuwenhuizen
2009-11-11 14:08 ` Tomas Carnecky
[not found] ` <1257965806.26362.132.camel@heerbeest>
2009-11-11 19:10 ` Tomas Carnecky
2009-11-11 19:34 ` Jan Nieuwenhuizen
2009-11-11 20:32 ` Tomas Carnecky
2009-11-12 14:17 ` Jan Nieuwenhuizen
2009-11-12 14:53 ` [PATCH] git-pull.sh: overhaul error handling when no candidates are found Jan Krüger
2009-11-12 15:06 ` Jeff King
2009-11-12 15:25 ` Jan Krüger
2009-11-12 15:28 ` Jeff King
2009-11-12 16:08 ` [PATCH v2] git-pull.sh --rebase: " Jan Krüger
2009-11-13 4:07 ` Jonathan Nieder
2009-11-27 14:17 ` [PATCH] pull: clarify advice for the unconfigured error case Jonathan Nieder
2009-12-02 23:08 ` Junio C Hamano [this message]
2009-12-03 1:26 ` Jonathan Nieder
2009-12-03 1:43 ` Jeff King
2009-12-03 8:49 ` Jan Nieuwenhuizen
2009-12-03 10:51 ` Jan Krüger
2009-12-07 0:29 ` Junio C Hamano
2009-11-15 9:08 ` [PATCH v2] git-pull.sh --rebase: overhaul error handling when no candidates are found Junio C Hamano
2009-11-12 14:56 ` Unhelpful "branch.master.remote = <nickname>" advice? Björn Steinbrink
2009-11-12 15:03 ` Tomas Carnecky
2009-11-18 12:29 ` [PATCH] Makefile: add uninstall target. Fixes elementary good cleaning manners Jan Nieuwenhuizen
2009-11-18 13:28 ` Matthieu Moy
2009-11-11 14:13 ` Unhelpful "branch.master.remote = <nickname>" advice? Jan Krüger
2009-11-11 19:54 ` 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=7vk4x57z4e.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=janneke-list@xs4all.nl \
--cc=jk@jk.gs \
--cc=jrnieder@gmail.com \
--cc=peff@peff.net \
--cc=tom@dbservice.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.