Engineering Revision Control System

The Engineering Revision Control System uses GitLab based on Git. Git is a Distributed Version Control System (VCS) which is originally developed in 2005 by Linus Torvalds (Creator of Linux) and is open source and freely available to use. It is the most popular and most used version control tool right now.

This service is hosted by the Faculty of Engineering and all data is stored in Canada on University owned servers.

This section provides resources to help you start working with GitLab and Git hosted by the Faculty of Engineering.

How do I get access to the Engineering Revision Control System?

All faculty, staff and students with a current association with the faculty of Engineering have access to the Enginering revision control service.
To access the service navigate to Engineering GitLab ( git.engr.uvic.ca ) and log in with your NetLink ID

Create your SSH public key for enabling Git over SSH.

Connect to the Engineering SSH server.

Check for existing SSH keys before generating new ones.
ls ~/.ssh/id_*
If you see “No such file or directory”, then there aren't any existing keys. If there are existing keys, you may want to use them.

Generate a new key (Associating the key with your email address helps you to identify the key later on)
ssh-keygen -t rsa -b 4096 -C "NetLinkID@uvic.ca"

Next, you will be prompted to input a file path to save your SSH key pair to. If you don’t already have an SSH key pair and aren’t generating a deploy key, use the suggested path by pressing Enter. Using the suggested path will normally allow your SSH client to automatically use the SSH key pair with no additional configuration.

Add SSH key to your GitLab profile.

Connect to the Engineering SSH server.
Display list of existing SSH keys.
ls ~/.ssh/id_*
cat ~/.ssh/id_XXXXXX.pub

Navigate to Engineering GitLab SSH Keys page.

Paste your SSH public key into the 'Key' area
Add a title to the key
"My Engineering public key"
Click 'Add Key“

Set up global Git configuration (in your Engineering home directory).

Connect to the Engineering SSH server.
git config --global user.name "FirstName LastName"
git config --global user.email "YourNetLinkID@uvic.ca"

Create a new project in GitLab.

  1. In your dashboard, click the green New project button or use the plus icon in the navigation bar. This opens the New project page.
  2. On the New project page, choose Create a blank project
  3. On the Blank project tab, provide the following information:
    • The name of your project in the Project name field. You can’t use special characters, but you can use spaces, hyphens, underscores or even emoji. When adding the name, the Project slug will auto populate. The slug is what the GitLab instance will use as the URL path to the project. If you want a different slug, input the project name first, then change the slug after.
    • The path to your project in the Project slug field. This is the URL path for your project that the GitLab instance will use. If the Project name is blank, it will auto populate when you fill in the Project slug.
    • The Project description (optional) field enables you to enter a description for your project’s dashboard, which will help others understand what your project is about. Though it’s not required, it’s a good idea to fill this in.
    • Changing the Visibility Level modifies the project’s viewing and access rights for users.
    • Selecting the Initialize repository with a README option creates a README file so that the Git repository is initialized, has a default branch, and can be cloned.
    • Click Create project.

Privacy considerations when using GitLab.

Please remember that public git repositories are visible to other users of the Enginering Revision Control Service.

A public repository will include personal information such as the user’s name which can be visible in commit history.

Gitlab users should also be very careful not to hardcode sensitive information like accounts and passwords in their source code repositories.
.gitignore files should be used to exclude things like passwords and sensitive data from being checked in.