[U-Boot] problem doing rebase in fresh git.denx.de/u-boot.git clone
Wolfgang Denk
wd at denx.de
Fri Dec 12 20:55:58 CET 2008
Dear "Peter Vollmer",
In message <op.ul1xayil2rocvy at tomo.bln.innominate.local> you wrote:
>
> 1) Lets say this is a simplified part of the commit log after I cloned the
> repo and created my branch with "git checkout -b bisect v2008.10"
But that's wrong. You said, you patches were based on v1.3.3 - then you must branch off v1.3.3:
git-checkout -b your_branch v1.3.3
> tag_v1.3.3
> commitA
> commitB
> commitC
> tag_v2008.10
Will give:
tag_v1.3.3 x-- your_branch---+
commitA
commitB
commitC
tag_v2008.10
> 2) then I commit my own patches at the top with "git am
> 0001-myPatch1.patch 0002-myPatch2.patch"
>
> tag_v1.3.3
> commitA
> commitB
> commitC
> tag_v2008.10
> myPatch1
> myPatch2
That makes no sense, if your patches are based on 1.3.3 - most
probably, they will not even apply correctly on top of v2008.10; what
you need is this:
tag_v1.3.3 x-- your_branch---+
commitA myPatch1
commitB myPatch2
commitC
tag_v2008.10
> 3) then I try to "git rebase -i v1.3.3" to reorder the commits in my
> branch in the following way (which failed):
That's wrong again. Here you need to do a "git rebase -i master",
which will move the point where you branched off the master branch
(marked in the pictures above with 'x') to the top of tree commit; if
successful, the result will then look like this:
> tag_v1.3.3
> commitA
> myPatch1
> commitB
> myPatch2
> commitC
> tag_v2008.10
tag_v1.3.3
commitA
commitB
commitC
tag_v2008.10 x-- your_branch---+
myPatch1'
myPatch2'
> 4) After that I wanted to do a git bisect between tag_v1.3.3 and
> tag_v2008.10 to find the commit when my port stops working.
Using bisect makes absolutely no sense to me in this context.
> I see, this would move my patches from after tag_v1.3.3 up to HEAD, but
> what I tried to accomplish was to distribute them back in the timeline to
> make bisect work at each point between v1.3.3 and v2008.10.
You cannot go backward. You could only start your own branch, and
then git-cherry-pick one patch after the other from the master
branch, and after each step clean up / add fixes as needed.
Then you can git-rebase -i your branch to consolidate patches.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The human mind ordinarily operates at only ten percent of its
capacity. The rest is overhead for the operating system.
More information about the U-Boot
mailing list