We are planning to review this service, some details may be outdated.

The School supports the Subversion and Git version control systems.

  • The Svn server is used to house individual and shared-user (project) repositories. Individual repositories are named after the login id of the owner, e.g. nabc1 or a7654321.
  • The School runs a private Gitlab repository. All Computing Science staff and students have access - sign in using Kerberos and your normal campus credentials.

Users - staff and students - wishing a centrally-managed repository should submit a request via the ticket system. Repositories can be individual or shared (e.g. Research projects or per-module student teams).

Repositories can be accessed using the following URL forms:

https:// with Campus Authentication

This is the default for new repositories, and should work as soon as a repository has been created. However, it has been observed to be slow sometimes in the Subversion case, depending on the number of network authentication trips required. URLs are of the form https://svn.cs.ncl.ac.uk/<repository> (and similarly for hg.cs). The wording "Campus Login" will be present when you are required to authenticate by this method.

https:// with Apache Basic Authentication

This method uses a local password file on the server for authentication. It should be faster that https:// using Campus Authentication. Passwords are set up through either of the Version Control Management pages. The same password is used for all repositories that a user has access to, whether Subversion or Mercurial. URLs are of the form https://svn.cs.ncl.ac.uk/basic/<repository> (and similarly for hg.cs). The wording "Subversion Basic" or "Mercurial Basic" will be present when you are required to authenticate by this method.

svn+ssh:// (Subversion) and ssh:// (Mercurial) with SSH Public Key Authentication

With this method, all users access repositories as the same user, namely ncsvc. It is the fastest method. A different key is required for each user/repository combination across all Subversion and Mercurial repositories. Keys are uploaded through the appropriate Version Control Management page. URLs are of the form svn+ssh:// ncsvc@svn.cs.ncl.ac.uk/<repository> or ssh:// ncsvc@hg.cs.ncl.ac.uk/<repository>.

One caveat: your SVN/SSH client must present the correct SSH public key for the repository you are trying to access. If you have multiple SSH public keys, you may need to use a trick to ensure the correct key is selected. One method is to use ssh host aliases.

Please note:-

  • When using the Subversion client in the https:// cases, credentials caching is employed in order to eliminate the need to repeatedly authenticate. The online Subversion book covers the topic. As can be seen there, passwords are stored in the clear in the Unix case. For that reason, credentials caching is disabled in The School's Linux installation. A different mechanism is used in the svn+ssh:// case. There, an SSH agent would be used to achieve the effect of caching.
  • When using the Subclipse plugin with Eclipse it will probably be necessary to specify the 'SVN interface' to be SVNKit (as opposed to JavaHL).
  • The applications TortoiseSVN and TortoiseGIT are available in The Rack for access to our repositories.