Skip to content

Rebase go ethereum

Ricardo Geraldes edited this page Sep 18, 2017 · 1 revision

General Info

  • we depend on go-ethereum project, which is under heavy development
  • we have our own fork of the go-ethereum repo: https://github.com/status-im/go-ethereum/commits/status/1.5.8 (1.5.8 branch)
  • from time to time we need to pull code from the upstream (which is go-ethereum for our fork)
  • in addition to pulling changes from upstream, we need to apply our custom commits (which we have for some custom functionality we need on top of the stock go-ethereum project): image

Rebase workflow

We start out of stable branch (assuming that a07539fb points to the starting point in upstream go-ethereum we want to base on):

git co -b status/1.5.9 a07539fb

Now, we need to apply our custom commits (they are generally available in our previous branch, say status/1.5.8-stable)

git cherry-pick "start^..end" (or you can cherry pick commits one by one, say, if you want to omit one in between)

While cherry picking, we will have to deal with conflicts. Indeed, our custom changes are compatible with the previous release, and new release might have changed sth. Once conflicts have been resolved, make sure that running make compiles w/o any problems.

Now, our new branch status/1.5.9 is ready to be used in status-go vendor folder. Copy over our updated fork, into the vendor folder. Commit with the message vendor: 1.5.9-stable (some extra note if necessary).

Try to make status-go. Chances that it will fail. If it fails, you need to fix issues, and commit changes as vendor: rebase fixes.

Now you are ready to file a PR (which will contain 2 commits!)

Clone this wiki locally