This is going to be a short article, because the activity is identical to Firmware Release with GitHub: Branch, Issue, Pull Request and Project support , but the other way around.
When creating a release, you merge the development code into the official master.
But here, after finishing a hot-fix, you merge the production changes (fixed code) with the ongoing project.
This time, I'll just use Git to merge the code, and GitHub to submit the pull request. Without project board support - because we've seen that extensively in the previous articles.
Step 1: Work is done - create a temporary dev-sync branch to prepare the merge of master changes into development
$ mkdir dev-sync $ cd dev-sync $ git clone -b development https://github.com/jancumps/msp432.git
$ cd msp432 $ git merge origin/master -m "sync master hot-fix changes into the development branch"
$ git checkout -b prod-sync $ git push --set-upstream origin prod-sync
Our dev-sync branch is now ready to be integrated into development. Over to GitHub for the Pull Request...
Step 2: Merge into development via pull request
We've seen this a few times now. I'm not going to dive into this. Take care to merge from dev-sync into development.
Step 3: Review the pull request and accept it.
When you have a development branch owner, that person would accept the pull request If you're a sole proprietorship, use your admin override to approve your own pull request.
The break-fix is now in the development branch and you just dodged the risk to have a regression hit you at the next release.
Delete the temporary dev-sync branch now.
In this flow where I didn't discuss the project board, the core steps are more apparent. The raw steps to get bug fixes synced to development with branch strategy.
If you want to try it with project board support - all is essentially the same. Just link Pull Request and Issue to the Project board.
This is the end of the series. With the goal to give insight into managed branches.
If you're not into Git with this support: all of this can be done with direct commits into the master and development branches.
That works well too. You have to make choices.