Git#

As per the software programming standards, all CTAO software must be under version control using Git. Git is a distributed version control system, which means that each checkout of a repository has the full history and changes like commits can be made without talking to a central server. However, for almost all software using git and also for the CTAO software, there is a canonical source repository, from which official releases are made and which serves as a basis for the features added to Git by the hosting providers like issue tracking, merge requests etc.

Starting a new Feature Branch#

New feature branches should always start from an up-to-date main branch. To ensure this, always fetch before branching and explicitly give the base branch on the command line:

$ git fetch
$ git switch -c <new branch name> origin/main
$ git fetch upstream
$ git switch -c <new branch name> upstream/main

It is recommended to give meaningful names to branches, for example including the issue number and a very short summary when addressing a bug: bugfix-123_segfault_during_startup.