Project

General

Profile

Git Workflow

We are using git as a versioning system using the Git Branching Workflows

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.

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.

Useful git configurations

These options can be configured in your global git config file e.g. ~/.gitconfig on Linux:

[user]
        name = Your Name
        email = your@email.net
[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