Git Workflow » History » Version 6
Alexander Watzinger, 2019-09-06 14:10
h1. Git Workflow
We are using "git":https://git-scm.com/ as a versioning system using the "Git Branching Workflows":https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows
h2. Main branches
* *master* - the stable version used in productive environments. It is the latest release version which is tested and, to our knowledge, bug-free.
* *develop* - here the latest development branches are joined when they are finished. At a release the develop branch is merged into the master branch.
The branches in which the work (in progress) is happening have following prefixes:
* *feature_* - e.g. feature_user_profile_images
* *fix_* - e.g. fix_map_bug
When work on these branches is finished they are merged into the *develop* branch. Around once a month a new version is released where the *develop* branch is merged into the *master* branch.
When working on a new feature it's a good workflow to begin from the *develop* branch and merge it regularly to keep merge conflicts to a minimum.
h2. Other branches
There may be some other prefixed branches which won't be merged regularly:
* *try_* - if something was tried out and put aside for the moment but may be continued later
* *test_* - special versions that are used to test specific scenarios
h2. Database changes
If there are database changes make sure that
* there is a comment with the issue number at the sql update script (e.g. at install/upgrade/3.12.0.sql)
* that the issue is noted at util/changelog.py
That way it's easier to deal with updates in the *develop* branch when dealing with multiple new features which need database updates.