# set-upstream for existing branch...?

8 messages from 2011-02-17 to 2011-02-17. Participants: Miles Bader, Jay Soffian, Michael J Gruber, knittl.
Thread: https://gitlist.dev/t/26529

## Miles Bader, 2011-02-17 05:19

Subject: set-upstream for existing branch...?
Message-ID: <buoei77xmpc.fsf@dhlpc061.dev.necel.com>
URL: https://gitlist.dev/e/buoei77xmpc.fsf%40dhlpc061.dev.necel.com

```
Is there a convenient, intuitive, way to set (or change) @{upstream} for
the current branch, without doing anything else...?

Thanks,

-Miles

-- 
Run away!  Run away!

```

## Jay Soffian, 2011-02-17 07:08

Subject: Re: set-upstream for existing branch...?
Message-ID: <AANLkTikqj8NjLwR647E1tHUuDO=OitUJ1dm5Fs7gtXXt@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTikqj8NjLwR647E1tHUuDO%3DOitUJ1dm5Fs7gtXXt%40mail.gmail.com
In-Reply-To: <buoei77xmpc.fsf@dhlpc061.dev.necel.com>

```
On Thu, Feb 17, 2011 at 12:19 AM, Miles Bader <miles@gnu.org> wrote:
> Is there a convenient, intuitive, way to set (or change) @{upstream} for
> the current branch, without doing anything else...?

$ git branch <current_branch> --set-upstream <new_upstream>

But note that this is deceptive: what's important is the relative
positions of <current_branch> and <new_upstream> on the command-line,
and they must be in that order. It doesn't (currently) matter where
you place the --set-upstream.

I've got it on my todo list to make --set-upstream take <new_upstream>
as its argument so that you can just say:

$ git branch --set-upstream <new_upstream>

j.

```

## Miles Bader, 2011-02-17 07:11

Subject: Re: set-upstream for existing branch...?
Message-ID: <buo8vxfxhhy.fsf@dhlpc061.dev.necel.com>
URL: https://gitlist.dev/e/buo8vxfxhhy.fsf%40dhlpc061.dev.necel.com
In-Reply-To: <AANLkTikqj8NjLwR647E1tHUuDO=OitUJ1dm5Fs7gtXXt@mail.gmail.com>

```
Jay Soffian <jaysoffian@gmail.com> writes:
> On Thu, Feb 17, 2011 at 12:19 AM, Miles Bader <miles@gnu.org> wrote:
>> Is there a convenient, intuitive, way to set (or change) @{upstream} for
>> the current branch, without doing anything else...?
>
> $ git branch <current_branch> --set-upstream <new_upstream>
>
> But note that this is deceptive: what's important is the relative
> positions of <current_branch> and <new_upstream> on the command-line,
> and they must be in that order. It doesn't (currently) matter where
> you place the --set-upstream.
>
> I've got it on my todo list to make --set-upstream take <new_upstream>
> as its argument so that you can just say:
>
> $ git branch --set-upstream <new_upstream>

Thanks, the latter sounds nice, but for now the former is good for an alias...

-miles

-- 
Dictionary, n.  A malevolent literary device for cramping the growth of
a language and making it hard and inelastic. This dictionary, however,
is a most useful work.

```

## Miles Bader, 2011-02-17 07:24

Subject: Re: set-upstream for existing branch...?
Message-ID: <AANLkTim6HDCaeTDuEtK+3niKKoz6A3KA=m=UCr4DaY-V@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTim6HDCaeTDuEtK%2B3niKKoz6A3KA%3Dm%3DUCr4DaY-V%40mail.gmail.com
In-Reply-To: <buo8vxfxhhy.fsf@dhlpc061.dev.necel.com>

```
Hmm, on a related note, is there an obvious way to _show_ the current
branch's upstream...?

[I mean, which just prints out "origin/master" or whatever...]

Thanks,

-miles

-- 
Cat is power.  Cat is peace.

```

## Jay Soffian, 2011-02-17 07:45

Subject: Re: set-upstream for existing branch...?
Message-ID: <AANLkTi=GPeo9Xr2taF6bsTF554SguDKGHo_S4P62xyxX@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTi%3DGPeo9Xr2taF6bsTF554SguDKGHo_S4P62xyxX%40mail.gmail.com
In-Reply-To: <AANLkTim6HDCaeTDuEtK+3niKKoz6A3KA=m=UCr4DaY-V@mail.gmail.com>

```
On Thu, Feb 17, 2011 at 2:24 AM, Miles Bader <miles@gnu.org> wrote:
> Hmm, on a related note, is there an obvious way to _show_ the current
> branch's upstream...?
>
> [I mean, which just prints out "origin/master" or whatever...]

git rev-parse --abbrev-ref @{u}

j.

```

## Michael J Gruber, 2011-02-17 08:23

Subject: Re: set-upstream for existing branch...?
Message-ID: <4D5CDB01.9070502@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4D5CDB01.9070502%40drmicha.warpmail.net
In-Reply-To: <AANLkTim6HDCaeTDuEtK+3niKKoz6A3KA=m=UCr4DaY-V@mail.gmail.com>

```
Miles Bader venit, vidit, dixit 17.02.2011 08:24:
> Hmm, on a related note, is there an obvious way to _show_ the current
> branch's upstream...?
> 
> [I mean, which just prints out "origin/master" or whatever...]
> 
> Thanks,
> 
> -miles
> 

git for-each-ref --format="%(upstream)" $(git symbolic-ref HEAD)

I can't come up with a better way of expanding @{u} without resolving
the resulting refname to a SHA1. You could do

git name-rev @{u}

or similar with "describe", but that's really backwards - it first
expands @{u} to a refname, then to a SHA1, and then tries to describe
that SHA1 by a refname...

BTW: Please don't change "--set-upstream" light-heartedly and isolated
from other stuff. We need more consistency wrt. subcommands vs. options
vs. options taking parameters. So an incompatible change should be part
of a bigger picture. This requires some research about our current
usage, pitfalls, and the best way forward (breaking as little as
possible and achieving as much as possible).

Michael

```

## knittl, 2011-02-17 09:25

Subject: Re: set-upstream for existing branch...?
Message-ID: <AANLkTimPYkEczv=suCr02rVb3OSg_h9o88_5CEmonPTR@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTimPYkEczv%3DsuCr02rVb3OSg_h9o88_5CEmonPTR%40mail.gmail.com
In-Reply-To: <4D5CDB01.9070502@drmicha.warpmail.net>

```
On Thu, Feb 17, 2011 at 9:23 AM, Michael J Gruber
<git@drmicha.warpmail.net> wrote:
> Miles Bader venit, vidit, dixit 17.02.2011 08:24:
>> Hmm, on a related note, is there an obvious way to _show_ the current
>> branch's upstream...?
>>
>> [I mean, which just prints out "origin/master" or whatever...]
>>
>> Thanks,
>>
>> -miles
>>
>
> git for-each-ref --format="%(upstream)" $(git symbolic-ref HEAD)
>
> I can't come up with a better way of expanding @{u} without resolving
> the resulting refname to a SHA1. You could do

what about

    git branch -vv

it will show all local branches with their upstream plus behind/ahead numbers

cheers,
daniel


-- 
typed with http://neo-layout.org
myFtPhp -- visit http://myftphp.sf.net -- v. 0.4.7 released!

```

## Michael J Gruber, 2011-02-17 09:41

Subject: Re: set-upstream for existing branch...?
Message-ID: <4D5CED32.3030507@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4D5CED32.3030507%40drmicha.warpmail.net
In-Reply-To: <AANLkTimPYkEczv=suCr02rVb3OSg_h9o88_5CEmonPTR@mail.gmail.com>

```
knittl venit, vidit, dixit 17.02.2011 10:25:
> On Thu, Feb 17, 2011 at 9:23 AM, Michael J Gruber
> <git@drmicha.warpmail.net> wrote:
>> Miles Bader venit, vidit, dixit 17.02.2011 08:24:
>>> Hmm, on a related note, is there an obvious way to _show_ the current
>>> branch's upstream...?
>>>
>>> [I mean, which just prints out "origin/master" or whatever...]
>>>
>>> Thanks,
>>>
>>> -miles
>>>
>>
>> git for-each-ref --format="%(upstream)" $(git symbolic-ref HEAD)
>>
>> I can't come up with a better way of expanding @{u} without resolving
>> the resulting refname to a SHA1. You could do
> 
> what about
> 
>     git branch -vv
> 
> it will show all local branches with their upstream plus behind/ahead numbers

That's a very nice and useful output, but my impression was that Miles
was more interested in one branch (the current one), and I think Jay
gave the most direct solution. While it does go through the
resolve-describe-circle (compared to for-each-ref) it should still be
efficient.

Michael

```
