The different repositories and their usage

The CVS repository for the main server

The Critical Team maintains a CVS repository of the current status of the main server. This has no direct connection to the other repositories and is more or less a backup to the repository on

This repository is the "master of what is". Only Critical Team has access to this one.

The GIT repository on ("CAcert repository")

This repository is the "master of what should be".

Ideally the "release" branch should be identically to the CVS repository, but it is normal that they have temporary differences1.

This repository is maintained by the Software Assessment Team, but read access is public. Write access currently requires that the Software Assessor has SSH access to

The Software Assessors should synchronize this repository with the GitHub repository as they see it useful. So, the release branch should be merged into the GitHub repository after a patch has been applied. Probably it also makes sense to merge bug-branches from the GitHub repository into the CAcert repository once the development has made some progress, for example when testing is started.

Just in case that something very bad should happen to the GitHub repository, this is the backup to start over again.

The GIT respository at ("GitHub repository")

The GitHub repository is the repository for everyday use.

Everyone can fork this repository, make some changes and then send a pull request to get their changes merged in. Senior members of the Software Development Team, as well as the Software Assessors, can commit directly into CAcert's repository and can therefor handle pull requests.

If you want to increase your chance of getting your pull request merged please consider this hints:

Hints for Software Assessors

These hints mainly cover the usage of GIT...

Synchronize the two repositories


  1. ... for example when a patch has been sent off to Critical, but is not yet applied (1)

Software/Assessment/Documentation/Repositories (last edited 2018-10-26 18:39:33 by BernhardFröhlich)