From: Junio C Hamano Date: Mon, 06 Dec 2010 03:33:31 GMT Subject: Re: [PATCHv2] parse-remote: handle detached HEAD Message-ID: <7vfwubtw1g.fsf@alter.siamese.dyndns.org> In-Reply-To: <1291593517-4406-1-git-send-email-santi@agolina.net> Santi Béjar writes: > In get_remote_merge_branch 'git for-each-ref' is used to know the > upstream branch of the current branch ($curr_branch). But $curr_branch > can be empty when in detached HEAD, so the call to for-each-ref is > made without a pattern. > > Quote the $curr_branch variable in the git for-each-ref call to always > provide a pattern (the current branch or an empty string) Otherwise it > would mean all refs. What output do you want to see in this case? "Nothing needs to be reported because on detached head you are not tracking anything?" If that is the case, shouldn't we be not calling "echo" at all to begin with? IOW, shouldn't the code read more like this? curr_branch=$(git symbolic-ref -q HEAD) && test "$origin" = "$default" && echo ... > Reported-by: Sverre Rabbelier > Signed-off-by: Santi Béjar > Tested-by: Sverre Rabbelier > --- > Changes since v1: > Tags for Reported-by and Tested-by. > > git-parse-remote.sh | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/git-parse-remote.sh b/git-parse-remote.sh > index 5f47b18..07060c3 100644 > --- a/git-parse-remote.sh > +++ b/git-parse-remote.sh > @@ -68,7 +68,7 @@ get_remote_merge_branch () { > test -z "$origin" && origin=$default > curr_branch=$(git symbolic-ref -q HEAD) > [ "$origin" = "$default" ] && > - echo $(git for-each-ref --format='%(upstream)' $curr_branch) > + echo $(git for-each-ref --format='%(upstream)' "$curr_branch") > ;; > *) > repo=$1