Skip to content

Branches and merging

eftychios pnevmatikakis edited this page Jul 31, 2018 · 1 revision

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 into master, 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.