- 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.
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.
Useful git configurations¶
These options can be configured in your global git config file e.g. ~/.gitconfig on Linux:
[user] name = Your Name email = email@example.com [color] ui = true [core] editor = vim [fetch] prune = true [merge] tool = meld [mergetool] keepBackup = false [status] showUntrackedFiles = all
Or using shell commands e.g.
git config --global fetch.prune true