- Introduction
- Branching Strategy
- Branching Model
- Branching Workflow
- Branching Naming Convention
- References
This document describes the branching concept used in the project. It explains the branching strategy, the branching model, the branching workflow, and the branching naming convention.
The branching strategy used in the project is a slightly modified Gitflow Workflow. It is a branching model designed around the project release. It is a strict branching model that assigns specific roles to different branches. The main branches are main
, dev
, group
, and task
.
The branching model consists of the following branches:
main
: The main branch that contains the production-ready code. It is the branch that is deployed to the production server and handed in as results of the milestones.dev
: The development branch that contains the latest development code. It is the branch where all group and task branches are merged into.group
: The group branches are used to solve multiple dependent tasks. They are branched off from thedev
branch and merged back into thedev
branch.task
: The task branches are used to solve a single task. They are branched off from thedev
orgroup
branch and merged back into the originating branch. Developers may branch off from atask
branch to simplify parallel development.hotfix
: The hotfix branches are used to fix critical bugs in the production code. They are branched off from themain
branch and merged back into themain
anddev
branch.doc
: The documentation branches are used to write any form of documentation. They are branched off from thedev
orgroup
branch and merged back into the originating branch.
If the documentation is done in parallel with the development, the documentation should instead be done in the respectivetask
orgroup
branch.
The branching workflow consists of the following steps:
- Create a new branch from the
dev
branch. - Solve the task or fix the bug in the branch.
- Test the branch locally.
- Create a pull request to merge the branch back into the
dev
branch. - Review the pull request.
- Merge the branch into the
dev
branch.
The branching naming convention is as follows:
group
:group/<group-name>
(e.g.group/M1-A2+A3
)task
:task/<task-name>
(e.g.task/M1-A2
)task-developer
:task/<task-name>@<developer-name>
(e.g.task/M1-A2@simon
)
hotfix
:hotfix/<hotfix-name>
(e.g.hotfix/M1-A2-fix
)