I have a set of changes which work perfectly against a certain linux version, say 2.6.25.4.
I have a git tree, and created a tracking branch vanilla-2.6.25.4 from the tag v2.6.25.4. I created a branch from this called my-changes-2.6.25.4, and did all my work.
Now, I would like to rebase my work on top of an arbitrary newer version of Linux. Say 2.6.28.9. What is the optimal git work flow to achieve this?
I know how to create a new branch from 2.6.28.9, but doing something like 'git merge my-changes-2.6.25.4' gives all kinds of conflicts from other things that I'm not interested in. This seems broken anyways.
I tried creating a new branch from my working my-changes-2.6.25.4, and doing git rebase 2.6.28.9, assuming this would take my changes from 2.6.25.4 and apply them on top of 2.6.28.9, but this gave me tons of conflicts that weren't related to anything I've changed.
I'm not sure what is the proper way to do this. I'm using the stable linux tree http://www.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6-stable.git, and I think some of the problems may stem from the fact that the versioned tags, v2.6.x.y aren't all from the same lineage.
Does anyone know how to do this properly? Extra credit for devising a way to automatically move forward as far as possible through binary search to find the next place where Linux broke my code by changing an interface, but I imagine once I know what I am actually trying to do I can automate it myself.