Re: [RFC] rebase: use @{upstream} if no upstream specified
- From
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
- Date
- Nov 20, 2010, 00:26 UTC
- Message-ID
- <AANLkTikWYVyCf9mueoAHjGcQuNOdPFyQrmtW79As4RG-@mail.gmail.com>
- In-Reply-To
- <20101119211533.GA18942@sigill.intra.peff.net>
On Fri, Nov 19, 2010 at 4:15 PM, Jeff King <peff@peff.net> wrote:
Show 26 quoted lines
> On Tue, Nov 16, 2010 at 09:29:46PM -0500, Martin von Zweigbergk wrote:
>
>> > What about simply checking if "rev-parse @{u}" succeeds, in which case
>> > we can use upstream_name=@{u} ? If it fails, then we can do the work
>> > of finding where the config flaw is (and delegate this to a func).
>> > That would help keep the nominal code path short.
>>
>> Will make sure to find out the error only when needed as you suggest.
>>
>> I thought I would need the ref name to be able to walk the reflog if my
>> other propasal would be accepted (see
>> http://thread.gmane.org/gmane.comp.version-control.git/161381), but it
>> seems to work with @{u} as well. I just adapted the call from 'git pull'
>> (git-parse-remote.sh), but I guess I could use 'git rev-parse @{upstream}'
>> instead. It does seem more natural to me.
>>
>> Maybe one of the guys on the CC list can advise?
>
> I'm not quite sure I understand the question, coming into the middle of
> the conversation. If you want to know "can I traverse the reflog of the
> upstream with @{u}", the answer is yes. We dereference the ref first
> (similarly, foo@{u}@{3.days.ago} looks at the upstream branch's reflog).
> If you want the refname, you can also use "git rev-parse
> --symbolic-full-name @{u}".
>
> Does that help?Yes, I did try that and I noticed that it worked, but it helps to know that it is not just by accident. I realize I was not very clear, but what I really was wondering if there is any advantage to using "git for-each-ref --format='%(upstream)' ${branch_name}" (as used by git pull) as compared to "git rev-parse @{upstream}" as suggested by Yann. ($branch_name in this case would be the current branch.)