Re: [PATCHv3] parse-remote: handle detached HEAD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Santi BÃjar <santi@xxxxxxxxxxx> writes:

> get_remote_merge_branch with zero or one arguments returns the
> upstream branch. But a detached HEAD does no have an upstream branch,
> as it is not tracking anything. Handle this case testing the exit code
> of "git symbolic-ref -q HEAD".
>
> Reported-by: Sverre Rabbelier <srabbelier@xxxxxxxxx>
> Signed-off-by: Santi BÃjar <santi@xxxxxxxxxxx>
> ---
>
>> 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 ...
>
> Or course, you are right. I didn't know/think about the exit
> code... Thanks.

The calling codepath in git-pull that wants to determine remoteref and
oldremoteref seems to expect get-remote-merge-branch to succeed in order
to find its $oldremoteref variable, and returning false in detached HEAD
case here will change what happens there---it won't run "rev-list -g"
anymore and quits the codepath early, leaving the variable empty.

But we do want to set the variable to an empty string in this case anyway,
so there is no harm done (it probably is what we actually want to happen).

So this should be Ok.  Sverre, do you want to do another round of testing
just to be sure before I apply this?

> Santi
>
>  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..4da72ae 100644
> --- a/git-parse-remote.sh
> +++ b/git-parse-remote.sh
> @@ -66,7 +66,7 @@ get_remote_merge_branch () {
>  	    origin="$1"
>  	    default=$(get_default_remote)
>  	    test -z "$origin" && origin=$default
> -	    curr_branch=$(git symbolic-ref -q HEAD)
> +	    curr_branch=$(git symbolic-ref -q HEAD) &&
>  	    [ "$origin" = "$default" ] &&
>  	    echo $(git for-each-ref --format='%(upstream)' $curr_branch)
>  	    ;;
> -- 
> 1.7.3.3.399.g0d2be.dirty
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]