threads / discuss / 26529

set-upstream for existing branch...?

Subject: set-upstream for existing branch...?

## tl;dr

8 messages between Feb 17, 2011 and Feb 17, 2011.

replies: 7people: 4as markdown or json

Miles Bader· Feb 17, 2011, 05:19 UTC · lore

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· Feb 17, 2011, 07:08 UTC · re: Miles Bader · lore

Re: set-upstream for existing branch...?

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· Feb 17, 2011, 07:11 UTC · re: Jay Soffian · lore

Re: set-upstream for existing branch...?

Jay Soffian <jaysoffian@gmail.com> writes:
Show 15 quoted lines
> 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· Feb 17, 2011, 07:24 UTC · re: Miles Bader · lore

Re: set-upstream for existing branch...?

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· Feb 17, 2011, 07:45 UTC · re: Miles Bader · lore

Re: set-upstream for existing branch...?

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· Feb 17, 2011, 08:23 UTC · re: Miles Bader · lore

Re: set-upstream for existing branch...?

Miles Bader venit, vidit, dixit 17.02.2011 08:24:
Show 9 quoted lines
> 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· Feb 17, 2011, 09:25 UTC · re: Michael J Gruber · lore

Re: set-upstream for existing branch...?

On Thu, Feb 17, 2011 at 9:23 AM, Michael J Gruber <git@drmicha.warpmail.net> wrote:

Show 15 quoted lines
> 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· Feb 17, 2011, 09:41 UTC · re: knittl · lore

Re: set-upstream for existing branch...?

knittl venit, vidit, dixit 17.02.2011 10:25:
Show 23 quoted lines
> 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

← back to recent threads