The ImpressCMS developers are using Git as the version control system for the core project.
Git Tutorial Videos
If you are unfamiliar with using Git, we have a video series showing you the basic Git principles.
Accessing the ImpressCMS Git Repository
The Git repository for ImpressCMS is maintained on Assembla. Instructions for connecting to the repository in order to clone it are found there. You will need to be a member of the ImpressCMS project team to push changes to the repository.
Repository Structure and Workflow
The repository structure is based on the workflow used for development and maintenance of the core and consists of different branches - master, branches/impresscms_* and feature/*.
master - this is the parent of all other branches and contains the latest stable release of ImpressCMS. No work is committed directly to this branch. Instead, new branches are created for development of new releases. Once the release is ready, the development branch will be merged to master through a merge (pull) request.
branches/impresscms_* - these are the release branches, created from master. For example, branches/impresscms_2.0 is the main branch for the development of the 2.0 release. As with the master branch, work should not be committed directly to these branches. To work on a new feature, task or bug fix, create a new feature branch from the corresponding release branch for your working copy. Once your changes have been made and tested, your feature branch will be merged with the release branch through a merge (pull) request.
feature/* - feature branches are the working branches and the only branches where you will be committing directly.
Commit Policies and Procedures
Because The ImpressCMS Project has adopted a very open development scheme (see Development Philosophy) a strict Policy has been established. Everyone contributing in the code needs to respect this policy. The ImpressCMS Commit Policy can be found here.
Since a commit policy is nothing if it's not enforced, we have implemented the ImpressCMS Commit Review Policy. This policy will ensure every commit in the core is reviewed by our team and properly accepted.