GitLab Guide

GitLab is an open-source package providing a Github.com-like service. This is used to provide git repositories, which in turn allows version control for a wide variety of projects.

CECS operates a GitLab instance, gitlab, providing this service to research staff and students at ANU, as well as to external collaborators, supporting excellence in research.

CECS also operates a teaching focussed gitlab service, which is directed at Undergraduate teaching activities.

For general GitLab and git questions there is a user guide accessible via the help link on the gitlab login page.

How do I login?

Use a web browser - https://gitlab.anu.edu.au

All non-undergraduate members of CECS should be able to log in with their UniID and password, using the "ANU ID" tab on the gitlab main page.

If you are an undergraduate, from another ANU College, or from outside ANU you will need to obtain a sponsored account.

If you have a sponsored account, login using the "Standard" tab.

 

If you're having continued problems logging in, please contact CECS IT Support for further assistance.

How do I get a sponsored account?

You will need to be sponsored by an academic or professional staff member of CECS. They will need to complete this form. You will receive an email with a signup link once your account has been processed and created.

Please note that using the gitlab service means agreeing to abide by ANU policies on acceptable use of IT services. Links to these policies are on the gitlab login page.

How do I sponsor an account for a collaborator?

You need to be an academic or professional staff member of CECS. Complete the form available here which will send your request to the CECS Service Desk. CECS IT Service Desk staff will create the account, and your collaborator will receive an email with a signup link.

 

Please note that HDR students and visitors cannot sponsor accounts.

Why can't I create a group?

To maintain some control over the group namespace, group creation is restricted to the same staff categories as account sponsorship i.e. professional or academic staff. All accounts are given a single group when they are created, which takes the format "firstnamelastname", and are initially restricted from creating further groups. To have this restriction lifted make a request to  CECS IT Support.

When creating a new group please keep in mind the Gitlab code of conduct below.

Importing from another repository/version control system

Before importing your project from another repository or version control system, please make sure to read guides concerned with the product you currently use, to make sure you know the limitations of each import/export tool, and to familiarise yourself with the process. Usually the process will involve exporting from your existing VCS, importing into a git repository, then pushing that to gitlab.anu.edu.au. Some direct import options for git repositories and service like Github are presented when you create a new project.

GitLab has some existing documentation on importing from services like GitHub

Existing git

It's simply a matter of configuring the target project in GitLab as a remote and pushing to it. GitLab provides sample commands after creating a new project.

GitHub, GitLab.com, etc

GitLab can import from GitHub, GitLab.com, Bitbucket, Gitorious.org, Google Code, and FogBugz using Omniauth application authentication. Import options are presented when you create a new project.

Currently only GitHub and GitLab.com are enabled, please contact the CECS helpdesk if you need other options enabled.

SVN

Here's one guide.

And one from git-scm.com.

And another from Atlassian.

Mercurial (Hg)

Mercurial and Git are quite similar so export and import are pretty straight forward.

Bazaar (bzr)

This guide looks to cover most of what you'll need.

While this one has a tool to extract particular commit meta-data.

CVS

Git has a built in CVS import option.

Another tool.

RCS

Seems to be this is the way to go.

Perforce and TFS

https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git

Gitlab service code of conduct

The gitlab service allows any CECS user to create new projects. CECS IT imposes few restrictions on project/group names other than that the names you choose will - depending on configured visibility - be viewable by at the least CECS IT staff, probably your colleagues, and maybe the public, so should meet ANU acceptable use of IT policies.

Offensive, inappropriate, or otherwise breaching projects will be removed.

Remember that the gitlab service is a shared resource, so before creating a new project or group check whether the name you have chosen is used by another research area, or could easily be confused with another research area. Project and group names other than "firstname lastname" style should be clearly relatable to a research area or group, and have a defensible rationale for their existence. Work out conflicts beforehand. CECS IT will refer any escalating conflicts directly to the CECS Executive for resolution.

git-lfs support

Gitlab supports git-lfs, so feel free to use it to store large files associated with your project.

Details of git-lfs support in GitLab are here.

Mattermost team communication service

Gitlab includes a bundled team communication service Mattermost, currently accessible via aecilius.cecs.anu.edu.au. Login is with your gitlab credentials.

The IT Group is keen to hear if groups find it useful.

Gitlab Feedback and Support

If you have any further questions about gitlab, or for technical support within the bounds of the CECS gitlab service, please contact helpdesk@cecs.anu.edu.au.

If you have any comments or feedback about gitlab, please email it.coordinator.cecs@anu.edu.au or feedback.cecs@anu.edu.au

Updated:  1 November 2018/Responsible Officer:  Dean, CECS/Page Contact:  CECS Marketing