This service offers hosting of code repositories for the Git distributed version control system.
Git is a distributed version control system, and offers an alternative to SVN for software code hosting. The hosting platform for Git repositories is gitlab.cern.ch. (The legacy platform git.cern.ch was decommissioned in 2016)
Git repository hosting platforms
The Git service is currently running GitLab, a modern platform introduced in spring 2015. In addition to repository hosting, GitLab offers GitHub-like code review and collaborative features (in particular a merge requests workflow). This is a fully self-service platform and is the recommended place for all new projects. Please read our guide to get started with GitLab. GitLab also offers:
- a built-in Continuous Integration engine to facilitate automatic test, build and deployment of software projects. See our article about GitLab-CI.
- a built-in Docker container registry available in gitlab-registry.cern.ch Detailed information is provided in this article.
Owners of SVN repositories are encouraged to move them to GitLab. See our article on migrating projects from SVN.
Documentation is available as Knowledge base entries in the Service Portal. Please make sure to 'Sign In' in the Service Portal to see all articles.
- GitLab-specific documentation is under the GitLab topic (in particular our Getting started guide) and in GitLab's help page.
- General help about Git usage and best practices can be found in the "Further guides" section on this page and under the topic "Using Git".
- Use of the Git service is granted to CERN account holders inside and outside CERN (this does not include lightweight accounts). Users without a CERN account cannot login to gitlab.cern.ch. Public projects with contributors from the general public or projects requiring collaboration with persons or companies not entitled to a CERN account may consider public Git repository hosting platforms such as GitHub or gitlab.com. For more details see KB0003132.
- The Git service aims at providing version control for text and source code. Storage of large binary files in general is outside the scope of the service. As a number of options exist already at CERN, Git-LFS (Large File Storage) is only provided with a restrictive quota (10GB per GitLab project as of May 2018) to help with migration from SVN.
- Service support is via the Service Portal and service availability is indicated on the availability displays available from the portal or this page.
- Like most other IT applications, Git and Gitlab service hours are regular CERN working hours, e.g. weekdays from 8:30 to 17:30. Although the services are designed to be reliable and downtime is not expected, any service releated intervention outside these hours are only on a "best effort" basis.
- Git repository data is hosted on Ceph RBD volumes accessed over NFS. Snapshots of all git repositories are taken daily and kept for a minimum of 2 months, enabling the recovery of the previous state of a repository. In addition, copy of the latest data (updated every 3h) is also maintained in a separate storage system in case of disaster with the main storage.
- Non-git data (Docker images, user uploads, job artifacts) is stored in S3. S3 versioning isconfigured so that deleted items are kept for 1 month before being removed from storage. In addition to S3's own internal redundancy and data protection mechanisms, a replica of the GitLab content stored in S3 is kept on a separate storage system (Ceph RBD volumes) and updated daily.
- GitLab Projects hosted in a user's personal workspace are archived after the user leaves CERN. GitLab Groups are however persistent and ownership can be transfered to other persons as necessary. Guidelines can be found in the "Getting Started" article.
- Any project or users that are found to abuse the service or not respecting the CERN Computing rules, may be removed upon notification of the administrators of that repository.
To send us your suggestion, or to make a feature request please go to the Service Portal.