-
Notifications
You must be signed in to change notification settings - Fork 369
Branches and merging
The main branches of CaImAn are master
and dev
. Master has the latest stable version of the code and represents what users typically see and use. Master gets updated only under two scenarios:
- A new release, by merging
dev
intomaster
, that incorporates new features and major improvements. - Whenever a bug is identified and fixed by committing directly into
master
.
Dev
is the main development branch. All development happens either directly on dev
or (preferably) on branches that are based off dev
. To ensure that merging dev
into master
is smooth it is important that dev
is always a superset (in terms of commits) of master
. If a bug is found on master
the preferred method is to commit the fix directly into master
and then merge master
into dev
using:
git checkout dev; git merge master
(followed by git push
to push the merged commits into dev
). It is important that this procedure is done through the terminal and not through the github website as this can lead to merging in the opposite direction.
The same procedure can also be followed for any working branch based off dev
, i.e., branch working_branch
can be a superset of dev
to ensure that merging into dev
will not introduce any big conflicts.