This tutorial will guide you through the process of collaborating with other people.
Please make sure you registered to GitHub and that you have provided them a ssh public key to access your private repository. For more information see the FAQ.
The development model CMS uses is to consider one repository:
as the authoritative source of CMSSW sources. All other personal repositories (aka forks, i.e. copies) are either for:
Proposing changes happens by creating a Pull Request from a given repository to the official one (also referred as official-cmssw), this is documented in the Proposing changes to CMSSW tutorial.
Sharing changes between peers is done instead by merging a remote branch in your local workarea. Such a branch is not necessarily associated to a pull request nor necessarily coming from the official CMSSW repository, effectively allowing groups of people to collaborate with each other before a topic is proposed for official inclusion in CMSSW.
While checking out a topic can be done with the standard git commands:
git pull, we provide an helper script, called
which removes some of the boiler-plate required. This command can be used for two different use cases:
Merging a pull request:
git cms-merge-topic <pull-request-id>
Merging a remote branch:
git cms-merge-topic <github-user>:<branch-name>
the latter command will use the official-cmssw remote in case no github username is provided.