[tech] git VCS hosting at UCC

David Adam zanchey at ucc.gu.uwa.edu.au
Sun Apr 19 00:40:39 WST 2009


In short: http://git.ucc.asn.au/

git, the version control system initially built for the Linux kernel, 
seems to be becoming the de facto standard for new and exciting projects. 
As the UCC is filled with people who enjoy these projects, I decided it 
was time we jumped on the bandwagon and had useful git hosting.

To get a repository, e-mail an appropriate SSH public key and your 
username to a friendly wheel member. You also need to specify whether or 
not it should be publically accessible (anonymous git:// cloning, gitweb).

Then you can do something like this:
  git remote add git.ucc git at ssh.ucc.asn.au:myproject.git
  git push git.ucc master:refs/heads/master

To clone a tree, you can have a key added as read-only in gitosis, or if 
you have a public repo, you can use:
  git clone git://git.ucc.asn.au/myproject.git

You can see these instructions, and the public repositories, at 
  http://git.ucc.asn.au/

Implementation details:

It seems that git is really keen on you not using a central repository; 
it's almost as hard to set up sanely as CVS and is certainly a massive 
step backward from Subversion or Monotone.

There is a user git with homedir /home/other/git. This user has gitosis 
installed using the system dpkg. The configuration of gitosis is 
controlled by a git repository hosted in gitosis, so you need to 'git 
clone git at ssh.ucc.asn.au:gitosis-admin.git' to make changes, then push 
them back. There are instructions in the config file on how to configure 
new repositories.

gitweb has also been installed, but rather than using the dpkg the 
appropriate files have just been copied out of /usr/lib and /usr/share in 
order to make life with suexec simpler.

Only repos that have 'daemon = yes' set in the gitosis configuration are 
exported via the git server and gitweb. Unfortunately you have to set the 
gitweb owner and description up manually, in $project.git/config and 
/description respectively - see an existing project for examples.

The actual git server runs out of inetd on mussel, but in order to have 
"git clone git://git.ucc" work, mooneye pipes port 9418 to mussel over 
rinetd. Once mooneye gets upgraded to Debian 5.0 (Lenny), we should be 
able to run gitosis on there and have ssh://[email protected]/ working.

If there's problems or suggestions email me.

David Adam
UCC Wheel Member
zanchey at ucc.gu.uwa.edu.au


More information about the tech mailing list