threads / patch / 18756

patchgit-pull.sh: better warning message for "git pull" on detached head.

Subject: [PATCH] git-pull.sh: better warning message for "git pull" on detached head.

## tl;dr

7 messages between Apr 6, 2009 and Apr 8, 2009. Diffs are folded; open one to read it.

replies: 6people: 4as markdown or json

Matthieu Moy· Apr 6, 2009, 21:14 UTC · lore

Otherwise, git complains about not finding a branch to pull from in 'branch..merge', which is hardly understandable.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 git-pull.sh |   43 ++++++++++++++++++++++++++-----------------
 1 files changed, 26 insertions(+), 17 deletions(-)
Show changes to git-pull.sh +26 −17
diff --git a/git-pull.sh b/git-pull.sh
index 8a26763..ab29a9e 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -90,23 +90,32 @@ error_on_no_merge_candidates () {
 
 	curr_branch=${curr_branch#refs/heads/}
 
-	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 "name which branch you want to merge on the command line and"
-	echo "try again (e.g. 'git pull <repository> <refspec>')."
-	echo "See git-pull(1) for details on the refspec."
-	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
-	echo "    branch.${curr_branch}.remote = <nickname>"
-	echo "    branch.${curr_branch}.merge = <remote-ref>"
-	echo "    remote.<nickname>.url = <url>"
-	echo "    remote.<nickname>.fetch = <refspec>"
-	echo
-	echo "See git-config(1) for details."
+	if [ -z "$curr_branch" ]; then
+		echo "You asked me to pull without telling me which branch you want"
+		echo "to merge with, and you are on a detached HEAD, so I cannot"
+		echo "know from 'branch.<branchname>.merge' in your configuration"
+		echo "file.  Please name 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 on the refspec."
+	else
+		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 "name which branch you want to merge on the command line and"
+		echo "try again (e.g. 'git pull <repository> <refspec>')."
+		echo "See git-pull(1) for details on the refspec."
+		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
+		echo "    branch.${curr_branch}.remote = <nickname>"
+		echo "    branch.${curr_branch}.merge = <remote-ref>"
+		echo "    remote.<nickname>.url = <url>"
+		echo "    remote.<nickname>.fetch = <refspec>"
+		echo
+		echo "See git-config(1) for details."
+	fi
 	exit 1
 }
 
-- 
1.6.2.2.449.g92961.dirty
Mike Ralphson· Apr 7, 2009, 09:24 UTC · re: Matthieu Moy · lore

Re: [PATCH] git-pull.sh: better warning message for "git pull" on detached head.

2009/4/6 Matthieu Moy <Matthieu.Moy@imag.fr>:
> Otherwise, git complains about not finding a branch to pull from in
> 'branch..merge', which is hardly understandable.
> +               echo "You asked me to pull without telling me which branch you want"
> +               echo "to merge with, and you are on a detached HEAD, so I cannot"
> +               echo "know from 'branch.<branchname>.merge' in your configuration"
> +               echo "file.  Please name which branch you want to merge on the command"
'Know from' in this sense is a little confusing. Maybe something like:

s/so I cannot know from 'branch.<branchname>.merge' in your configuration file/ \ so I cannot use any 'branch.<branchname>.merge' from your configuration file

?
> +               echo "your configuration file does not tell me either.  Please"
> +               echo "name which branch you want to merge on the command line and"
> +               echo "try again (e.g. 'git pull <repository> <refspec>')."

I know you haven't changed this part, but as it's included in the patch, what we're asking the user to do is to 'specify' the branch to merge, not to 'name' it.

Mike
Matthieu Moy· Apr 7, 2009, 09:56 UTC · re: Mike Ralphson · lore

[PATCH v2] git-pull.sh: better warning message for "git pull" on detached head.

Otherwise, git complains about not finding a branch to pull from in 'branch..merge', which is hardly understandable. While we're there, reword the sentences slightly.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
Show 5 quoted lines
> 'Know from' in this sense is a little confusing. Maybe something like:
> 
> s/so I cannot know from 'branch.<branchname>.merge' in your
> configuration file/ \
> so I cannot use any 'branch.<branchname>.merge' from your configuration file
Makes sense, yes.
> I know you haven't changed this part, but as it's included in the
> patch, what we're asking the user to do is to 'specify' the branch to
> merge, not to 'name' it.
Applied too.

I also added s/details on the refspec/details/ in the pointer to git-pull(1) since first patch.

 git-pull.sh |   43 ++++++++++++++++++++++++++-----------------
 1 files changed, 26 insertions(+), 17 deletions(-)
Show changes to git-pull.sh +26 −17
diff --git a/git-pull.sh b/git-pull.sh
index 8a26763..6d5f558 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -90,23 +90,32 @@ error_on_no_merge_candidates () {
 
 	curr_branch=${curr_branch#refs/heads/}
 
-	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 "name which branch you want to merge on the command line and"
-	echo "try again (e.g. 'git pull <repository> <refspec>')."
-	echo "See git-pull(1) for details on the refspec."
-	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
-	echo "    branch.${curr_branch}.remote = <nickname>"
-	echo "    branch.${curr_branch}.merge = <remote-ref>"
-	echo "    remote.<nickname>.url = <url>"
-	echo "    remote.<nickname>.fetch = <refspec>"
-	echo
-	echo "See git-config(1) for details."
+	if [ -z "$curr_branch" ]; then
+		echo "You asked me to pull without telling me which branch you want"
+		echo "to merge with, and you are on a detached HEAD, so I cannot"
+		echo "use any 'branch.<branchname>.merge' in your configuration"
+		echo "file.  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
+		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 "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
+		echo "    branch.${curr_branch}.remote = <nickname>"
+		echo "    branch.${curr_branch}.merge = <remote-ref>"
+		echo "    remote.<nickname>.url = <url>"
+		echo "    remote.<nickname>.fetch = <refspec>"
+		echo
+		echo "See git-config(1) for details."
+	fi
 	exit 1
 }
 
-- 
1.6.2.2.449.g92961.dirty
Finn Arne Gangstad· Apr 7, 2009, 10:41 UTC · re: Matthieu Moy · lore

Re: [PATCH v2] git-pull.sh: better warning message for "git pull" on detached head.

On Tue, Apr 07, 2009 at 11:56:21AM +0200, Matthieu Moy wrote:
Show 8 quoted lines
> Otherwise, git complains about not finding a branch to pull from in
> 'branch..merge', which is hardly understandable. While we're there,
> reword the sentences slightly.
> [...]
> +	if [ -z "$curr_branch" ]; then
> +		echo "You asked me to pull without telling me which branch you want"
> +		echo "to merge with, and you are on a detached HEAD, so I cannot"
> [...]
In this case why can't we just do
echo "You are currently not on any branch."
or
echo "git pull cannot be run without arguments unless you are on a branch."
And possibly also something like this:

echo "Usage: git pull <repository> <refspec>." echo " See git-pull(1) for details." echo

If you need all the verbosity this error otherwise gives, "detached HEAD" is probably going to be confusing?

- Finn Arne
Matthieu Moy· Apr 7, 2009, 11:36 UTC · re: Finn Arne Gangstad · lore

Re: [PATCH v2] git-pull.sh: better warning message for "git pull" on detached head.

Finn Arne Gangstad <finnag@pvv.org> writes:
Show 13 quoted lines
> On Tue, Apr 07, 2009 at 11:56:21AM +0200, Matthieu Moy wrote:
>> Otherwise, git complains about not finding a branch to pull from in
>> 'branch..merge', which is hardly understandable. While we're there,
>> reword the sentences slightly.
>> [...]
>> +	if [ -z "$curr_branch" ]; then
>> +		echo "You asked me to pull without telling me which branch you want"
>> +		echo "to merge with, and you are on a detached HEAD, so I cannot"
>> [...]
>
> In this case why can't we just do
>
> echo "You are currently not on any branch."

Well, I would understand this as "you can't pull when you're not on a branch", which would be incorrect.

> echo "git pull cannot be run without arguments unless you are on a branch."
This is better (less missleading).
> And possibly also something like this:
>
> echo "Usage: git pull <repository> <refspec>."
> echo " See git-pull(1) for details."
This usage string would be incorrect, repository and refspec are not
always mandatory. To be correct, it should be
Usage: git pull [<repository> <refspec>]
and then you're back to the problem of having to explain why they are
optionnal.
> If you need all the verbosity this error otherwise gives, "detached
> HEAD" is probably going to be confusing?

Grepping the source, "not on a branch" seems more widely used than "detached head" in the UI (including in another place of git-pull.sh), so, yes, something like this would be better:

	if [ -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 "line and try again (e.g. 'git pull <repository> <refspec>')."
		echo "See git-pull(1) for details."
	else
-- 
Matthieu
Junio C Hamano· Apr 8, 2009, 00:43 UTC · re: Matthieu Moy · lore

Re: [PATCH v2] git-pull.sh: better warning message for "git pull" on detached head.

Matthieu Moy <Matthieu.Moy@imag.fr> writes:
> Grepping the source, "not on a branch" seems more widely used than
> "detached head" in the UI (including in another place of git-pull.sh),
> so, yes, something like this would be better:
Yeah, "not on a branch" sounds like the best wording.
Matthieu Moy· Apr 8, 2009, 07:24 UTC · re: Junio C Hamano · lore

Otherwise, git complains about not finding a branch to pull from in 'branch..merge', which is hardly understandable. While we're there, reword the sentences slightly.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
 git-pull.sh |   42 +++++++++++++++++++++++++-----------------
 1 files changed, 25 insertions(+), 17 deletions(-)
Show changes to git-pull.sh +25 −17
diff --git a/git-pull.sh b/git-pull.sh
index 8a26763..8c75027 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -90,23 +90,31 @@ error_on_no_merge_candidates () {
 
 	curr_branch=${curr_branch#refs/heads/}
 
-	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 "name which branch you want to merge on the command line and"
-	echo "try again (e.g. 'git pull <repository> <refspec>')."
-	echo "See git-pull(1) for details on the refspec."
-	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
-	echo "    branch.${curr_branch}.remote = <nickname>"
-	echo "    branch.${curr_branch}.merge = <remote-ref>"
-	echo "    remote.<nickname>.url = <url>"
-	echo "    remote.<nickname>.fetch = <refspec>"
-	echo
-	echo "See git-config(1) for details."
+	if [ -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 "line and try again (e.g. 'git pull <repository> <refspec>')."
+		echo "See git-pull(1) for details."
+	else
+		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 "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
+		echo "    branch.${curr_branch}.remote = <nickname>"
+		echo "    branch.${curr_branch}.merge = <remote-ref>"
+		echo "    remote.<nickname>.url = <url>"
+		echo "    remote.<nickname>.fetch = <refspec>"
+		echo
+		echo "See git-config(1) for details."
+	fi
 	exit 1
 }
 
-- 
1.6.2.2.449.g92961.dirty

← back to recent threads