English logga in



Denna sida finns bara på engelska.

We have a Git server with Gitolite.

To use it the server must know your public key. Here you can read about how to create one. Then you need to tell it to the admin here in some way. You don't need to have a login on our system to access this, so if you do projects in collaboration with other people, their public keys are enough as well.

After that you can list what repositories you have access to with the command

ssh git@cl info
Note! In this and all other commands on this page cl (computational linguistics) is an alias for the computer numerus. You can use any name for it, and on a computer that is not part of our GNU/Linux system you have to use a full name with the domain, like cl.lingfil.uu.se instead. So for example the above command would be ssh git@cl.lingfil.uu.se info instead.

That may give a result like

 R W    testing
 R      u/starback/foo
That would mean that you have Read and Write access to the first repository and just Read access to the second. Then you can clone a repository like this:
git clone git@cl:testing

New repositories – by asking

If a project at the department will use Git, you can ask admin to set it up. You need to state a name and who should have write access and who should have read access to the repository.

You can use catch-all terms like anyone in the computational linguistics group, anyone (who has access to our git server) etc. if you want.

Consider being less restrictive than what you first think. Even if only two people will be working on a project, maybe it will be better to give everyone in the group write access anyway. Then you don't have to ask for a change when later a third person joins the project, and it will be possible for someone who is just reading it to fix an obvious typo they see. It is not likely that people will sabotage your work, and if they do one advantage of version control is that you can undo it.

Wild repositories

New repositories can also be created on the fly, without asking.

If the output from ssh git@cl info includes a line

       C  u/CREATOR/\w.*
that means you can create wild repositories with names that follow that pattern; that is start with u/ and then your username. If you work here you are supposed to have that right. If you don't, ask admin to fix that.

Then you can just clone a non-existing repository with a matching name and it will be created. Other users won't have any access to the new repository unless you give it to them. The following example shows how a user huey creates a new repository and then adds write access to two users (dewey and louie) and read access to everyone. (The group @all means everyone.) Finally current permissions are listed.

$ git clone git@cl:u/huey/my-test
Cloning into 'my-test'...
Initialized empty Git repository in /opt/site/gitolite3/repositories/u/huey/my-test.git/
warning: You appear to have cloned an empty repository.
$ ssh git@cl perms u/huey/my-test + WRITERS dewey
$ ssh git@cl perms u/huey/my-test + WRITERS louie
$ ssh git@cl perms u/huey/my-test + READERS @all
$ ssh git@cl perms u/huey/my-test -l

There is more help available with ssh git@cl perms -h .

Note! These wild repositories are seen as belonging to your username, and when you leave the department they may eventually be removed. So if the repository is a project that should live on at the department, make sure that it is transferred when you leave.