How does the Git Structure work? When I a look at the "Branches" of MediaPortal 1 on Github, I will see something called "Master" sitting on top and a lot of branches below. What is the relationship between the Master and the various branches?
The master is the base or "stable" branch. It represents our next release
Branches will only be merged with the master once they are fully tested, confirmed to be working, documented and approved to get merged/included in the next release.
For every new feature, rework or bugfix we use a separate branch. While this does look like a lot of extra work, this is actually very easy and fast when using GIT. This allows the team to more closely follow release schedules, because only stable code will be allowed to merge with the master.
Also developers are no longer stalled by feature and code freezes. They can just continue their work in their branch.
Generally speaking there are four different kinds of branches:
- BUG-<Mantis ID>-<Description> - Such a branch is about a bugfix. The Mantis ID clearly links it to the issue in Mantis.
- FEAT-<Mantis ID>-<Description> - This branch is a new feature. The Mantis ID clearly links it to the issue in Mantis.
- RELEASE - Such a branch is used for all maintainance releases for a major release. i.e. Release_1.2.x stores the stable code of all 1.2.x maintainance releases.
EXP-<Description>- These are experimental branches which are used to try out ideas. Such are unclear if they ever reach a state where they can be integrated into a major release.
This page has no comments.