"rebase" is how you tell git that you'd like to replay a set of commits from a different branch onto your current branch. So the simple case is:
- clone some repo
- do some work on a branch (commit A, B, C)
- meanwhile, the upstream repo moves forward
- now you're behind, so you fetch upstream, then rebase your branch
In this case, that branch is someone else's branch (forester3).
Code: Select all
git clone git@github.com:micropython/micropython.git
cd micropython
git remote add forester3 git@github.com:forester3/micropython.git
git checkout f7disc-lcd
So now we're on forester3's f7disc-lcd branch, in a repo that has two remotes: origin=micropython/micropython, forester3=forester3/micropython
Code: Select all
git fetch origin
git rebase -i origin/master
This will do an "interactive rebase", showing the set of commits that are going to be rebased. It should just be forester3's commits. Close that, and it will run.
Now what happens is for every commit it attempts to replay it on top of master, and asks us to deal with the conflicts.
OK at this point I retract my "fairly straightforward" comment... sorry. This was complicated because of three things:
- This branch introduced it's own SDRAM controller (conflicts with recent work in MicroPython)
- The README.md was updated a bunch (lots of conflicts because this file changes occasionally)
- They changed the stm32lib submodule version (not sure why)
I did the rebase myself and the results are here --
https://github.com/jimmo/micropython/tr ... cd-rebased
I undid all the sdram changes (except for the linker script so that the ST code has the right symbols), and did some quick hacky fixes to deal with the change to the hal_conf headers. The way this driver works (using the ST reference code) is unlikely to be able to be merged upstream, so I didn't try too hard to make it neat.
But unfortunately I do not own this board (I only have a similar F769disco) so I cannot test it. The branch above does compile, but I have no idea if it will work. At some point I'll try adapting it to my board (I've always wanted to get the LCD working) but probably won't be able to get to this for a couple of weeks.
If you want to try out building that branch, I'd be keen to know how you go.