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. 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.
Support is provided for the Git command-line client available on lxplus and current CERN Linux distributions (via the git package). GitLab also allows for file edits and upload via a modern web browser.
A version of Git for Windows is available from CMF. It is provided as-is.
While most developer tools have integrated support for Git natively nowadays and will usually work, their behavior when used with the Git service cannot be guaranteed. Some features like Kerberos authentication may not be available in all such tools.
Note: operating the client software is the responsibility of the user when not using the standard command line client as provided on the lxplus service and CERN Linux distributions.
Git is intended for text and source code. Binaries, JAR files, pictures, etc. would fit better in other services provided by the CERN IT Department. Please check this KB article to find a set of recommendations on how to use Git and alternatives in case what you need is an storage system.