Home Teaching Research Publications

Advanced Operating Systems (LV 7680)

Git Overview

We are using git for source code revision control and to facilitate collaboration. If you are not already familiar with git, here are some resources to help familiarise yourself with git.

  1. A git tutorial
  2. Shared repositories on the department gitlab
  3. Using external hosting

A git tutorial

A good interactive tutorial for learning git branching is at http://pcottle.github.io/learnGitBranching/.

Both the Main and Remote tutorials are worth doing, either in their entirety or at least the first few sections of each.

Shared repositories on the department gitlab

If you haven't already, set up an account on the department's gitlab. You will need your CS department login credentials. (Before you do so, make sure that your LDAP entry has a valid email address (e.g. @student.hs-rm.de). The system will suggest that you upload your public key (e.g. content of file ~/.ssh/id_rsa.pub). Please do so.

That done, please send me your login ID. I will then give you reporter access to the repository holding the AOS template for milestone 0.

Once groups have been established we will provide a group git repository for each group that is shared between members of your group. All group members will be given developer rights to the repository. Now you have a shared repository to work with your partner. Initially, it will contain a fork from the AOS template for milestone 0. You need to clone a working copy to where ever you will be doing your development. For example, on your laptop:

    laeppi$ cd where_ever
    laeppi$ git clone ssh:https://gitlab.cs.hs-rm.de/advanced-operating-systems/2020_aos/group-{your-group-number}/aos-20YY
    Cloning into 'aos-20YY'...
    remote: Counting objects: 2835, done.
    remote: Compressing objects: 100% (2294/2294), done.
    remote: Total 2835 (delta 422), reused 2835 (delta 422)
    Receiving objects: 100% (2835/2835), 7.30 MiB | 8.43 MiB/s, done.
    Resolving deltas: 100% (422/422), done.

You can now pull and push patches to and from your laptop from and to your shared repository respectively. All Group members will be able to create individual development branches as they see fit and to push changes to the master branch once all agree. Milestone submissions should be indicated as tags on the master branch.

Using external hosting

Don't.

Specifically, do not use github.com unless you have a paid private repository.