[U-Boot] Syncing custodian tree (the new way) - What am I doing wrong?
Albert ARIBAUD
albert.u.boot at aribaud.net
Tue Oct 25 18:20:07 CEST 2011
Le 25/10/2011 13:32, Graeme Russ a écrit :
> Hi Albert,
>
> On 25/10/11 22:05, Albert ARIBAUD wrote:
>> Le 25/10/2011 09:53, Wolfgang Denk a écrit :
>>> Dear Graeme Russ,
>>>
>>> In message<4EA66869.7000106 at gmail.com> you wrote:
>>>>
>>>> I'm trying to figure out what I'm doing wrong trying to sync my local x86
>>>> repo as per the 'new' instructions on the wiki. This is what I get:
>>>
>>> I did not write (and actually not even read yet) these new
>>> instructions, so I cannot comment on this.
>>>
>>>> graeme at helios:~/Source/U-Boot/x86$ git rebase ${upstream}/master
>>>> fatal: Needed a single revision
>>>> invalid upstream u-boot/master
>>>
>>> Albert?
>>
>> (answering from my non-U-boot address)
>>
>> I did write the changes, and I think I did post an announcement on the
>> U-Boot list about it.
>>
>> Re: Greame's problem:
>>
>> I should have made it clear that '${upstream}' is just a way to represent
>> the upstream tree, either u-boot or u-boot-arm. The actual command for x86
>> should thus be
>>
>> git rebase u-boot/master
>
> I was already clear on that - I had set upstream=u-boot - Note the error
> message:
Sorry, from my non-U-Boot e-mail address I only had what Wolfgang quoted.
> fatal: Needed a single revision
> invalid upstream u-boot/master
> ^^^^^^
> I think the problem is at:
>
> git fetch git://git.denx.de/${upstream}.git
>
> Where are we actually pulling the upstream tree into?
We are not pulling -- that's the point. We are fetching, i.e. we are
importing all commits in the upstream remote and all its local branches
will appear as remote branches to us.
> No my repo is at ~/Source/U-Boot/x86/ and I have uboot and master branches
> there (as per previous wiki instructions) so I tried:
>
> git checkout uboot
That one (and actually the uboot branch itself) is unneeded.
> git fetch git://git.denx.de/${upstream}.git
> git checkout master
> git rebase ${upstream}/master
>
> But that is not right - I would normally rebase to uboot
No, you would not; you would rebase to your upstream's master.
The old instructions introduced a local branch called uboot which only
served as a proxy for ${upstream}/master by regularly merging it (and
these merges were actually always fast-forwards). So doing a rebase onto
uboot is exactly the same as onto ${upstream}/master.
> I think there is a missing link here somewhere
I should have made my rationale clear when posting my update message on
the list, sorry.
As I just said, uboot was just a placeholder for ${upstream}/master, and
the old instructions kept it in sync through git merge although these
merges were always fast-forwards by nature. What I did was remove uboot
and use ${upstream}/master, and thus replace the pull into uboot by a
simple fetch of ${upstream} directly, the net benefit being that there
is now no git merge involved, hence zero risk of undue merges -- and
I've seen such undue merges in the few last release cycles.
Amicalement,
--
Albert.
More information about the U-Boot
mailing list