Advanced Operating Systems
We are using
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.
Hosting a shared repository at CSE
We provide a group account that will allow you to create a git repository that is shared between members of your group. As you can see below, my group (99) is in /home/aos99, and I have permission to (via the group permission) to use the directory.
kevine@weill% cd /home/aos99 kevine@weill% ls -al total 24 drwxrws--- 2 aos99 aos99 4096 Aug 1 16:47 . drwxr-xr-x 372 root root 20480 Aug 1 16:47 .. kevine@weill%
Before you start use the directory, both you and your partner will need to modify your umask so you and your partner create files and directories accessible via the group permissions by default (if you're interested, see man umask for details). Do this by modifying your .profile in your home directory. Change the umask command to be the following:
% umask 007
Now, whenever you log in, your umask will be set appropriately. Either log out and log back in again now or run the command source .profile to ensure your umask is set.
To set up a shared repository, simply clone the one in the class account.
kevine@weill% git clone /home/cs9242/public_git/aos-YYYY Cloning into 'aos-YYYY'... done. Checking out files: 100% (2592/2592), done. kevine@weill%
Now you have a shared repository to work with your partner. Thus you need to clone a working copy to where ever you will be doing your development. For example, on my laptop:
mako$ cd where_ever mako$ git clone ssh://firstname.lastname@example.org//home/aos99/aos-YYYY 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.
I can now pull and push patches to and from my laptop from and to my shared repository respectively, at /home/aos99 at CSE.
Using external hosting
Do not use a public repository (i.e. a public hosting service) for collaboration with your partner.
Specifically, do not
Bitbucket is a commercial git repository hosting service that is free for repositories shared between 5 users or less.
We in no way endorse this service except to point out that it supports private repositories at no cost. Use it at your own risk.
While we prefer (strongly encourage :-) ) you to use CSE to host your repository, using bitbucket might be an alternative students prefer. We won't prevent you doing what is most efficient for you and your partner as long as the shared repository is private to you and your partner.
Last modified: 31 Jul 2015.