This lesson is in the early stages of development (Alpha version)

Gitlab: Introduction

Prerequisites

This assumes that you’ll have some basic background with git, for example:

  1. How to get a local repository, in two ways
    • using git init
    • by cloning from github
  2. How to branch, add changes, commit them, and push
  3. The basics of creating a merge request

You should also have fully worked through the pre-workshop material. Having failed to complete this will make it very challenging and you will eventually have to go back and do this. So take a few hours to be sure you have fully worked through that now.

Introduction

In ATLAS we use use Gitlab—basically an open-source replica of Github—to host our code. Superficially the two have some confusing differences:

Fortunately, beyond this veneer the core concepts are nearly identical so everything you learned from the Software Carpentry lesson applies. The aim of this module is to expand on some concepts you learned in the morning and highlight a few of what we consider to be essential skills to anyone working in ATLAS.

The skills we’ll focus on:

  1. The basic setup for CERN Gitlab
  2. Creating a new repository for your AnalysisPayload from the pre-workshop material
  3. Adding credentials
  4. Forking an existing repository so you can use it “like its your own”
  5. Creating merge requests to modify code in a way to ensure that it gets reviewed
  6. Including code from other repositories with yours through the use of submodules

Schedule

Setup Make sure gitlab.cern.ch works for you, now!
00:00 1. Creating a local repositry How do I create a simple repository?
00:20 2. Credentials How do I add my credentials?
00:45 3. Creating the remote repository How do I create a repository and share code?
01:10 4. Cloning How do I clone an existing project
01:20 5. Coffee Break How awesome is coffee?
01:40 6. Adding Code How do I add to an existing project?
02:00 7. Modifying your friend's code How do I run someone else’s code?
02:25 8. Making a merge request How do I fix someone else’s code?
02:50 9. Submodules How do I use another repository in my project
03:15 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.