Version Control at UCC

Version control software is vitally important for software projects and other technical undertakings. If you're not using it, you're missing out.

Clients

The UCC supports a number of version control clients for its machines; if you would like something added to this list, or can't get something working, simply e-mail [email protected].

Servers

We run centralised servers for git, Mercurial, Subversion, Monotone and CVS. All of these servers are also connected to web interfaces for easy browsing.

git

The UCC hosts git repositories using gitosis. Public and private repositories are available. Private repositories are only available over SSH; public repositories are also available over the git network transport.

There is a web interface at http://git.ucc.asn.au/.

For further information, including details on how to create new repositories and gain access to the UCC git server, see http://git.ucc.asn.au/.

Mercurial

Mercurial has the features of the modern distributed VCS systems but is less ugly than Git. UCC hosts mercurial repositories, see https://secure.ucc.asn.au/hg/. Ask a wheel member to add your repository to the list.

Subversion

If you're just getting started with version control, you should choose Subversion. We recommend TortoiseSVN for Windows users.

First, ask someone in Wheel group to create you a Subversion repository. Make sure to give them your username, and tell them whether you would like your repository to be public or private.

Once that's been created, you can access your repository at http://svn.ucc.asn.au:8080/reponame/. If you've requested a public repository, you should be able to browse through your code and revision history at http://cvs.ucc.asn.au/.

You can manage the list of users who have access to your repository by using the htpasswd command on Mussel to alter the /usr/local/svn/username.htpasswd file.

Monotone

If you're looking for something more advanced than Subversion, you might be interested in Monotone. The UCC provides a standalone Monotone netsync server, which you can push and pull from as required. We recommend you use branch names like au.asn.ucc.membername.project, but other branches can be mirrored if you would prefer.

Anyone can pull from monotone.ucc.gu.uwa.edu.au. To get push or sync access, give your public key(s) to a Wheel member and ask them to add your keys and name to the server's database and hook scripts.

There is also a web interface at http://viewmtn.angrygoats.net: branches whose names start with au.asn.ucc will be available in ViewMTN.

CVS

To commit to the UCC's CVS server, you must be a member of the cvs group (type id at a shell to see your groups). To become a member of this group, ask your nearest friendly wheel member.

Once you have a CVS commit bit, set the following environment variables:

CVS_RSH=ssh CVSROOT=martello:/home/other/cvs

You should then be able to cvs import or cvs co as required.

The web interface to CVS is at http://cvs.ucc.asn.au/. CVS is publically viewable - if you need private storage, talk to a Wheel member.

Anonymous CVS checkout is available by running cvs -d :pserver:[email protected]:/ucc-cvs login on the target computer.