Subversion Service

The Department of Materials is now running a subversion server which is a powerful tool for managing and recording changes to files (e.g. software codes or configuration files or thesis files). Subversion is a document version control system.

Any member of department can ask for a subversion repository to be setup for a research group or project by emailing itsupport@materials.ox.ac.uk. It is also possible to allow external users access for collaborative projects.

In order to access the subversion service it is necessary to supply a username/password combination in the form of an htpasswd (used for web authentication). This username password combination should not be the same as any of your existing ones. http://www.htaccesstools.com/htpasswd-generator/

In addition when requesting an account you will need to say whether you are wanting to setup a new repository/project owned by yourself or provide the name of an existing repository/project that you wish to join.

If you request a new repository then you should provide a preferred repository-name and a list of *all* users who will require access to that repository with the suitable username/password combinations in htpasswd format as above.

Example Access Control

Consider the following example showing permission control.

There are three example users with passwords:
testuser1 = *ask Paul Warren for password*
testuser2 = *ask Paul Warren for password*
testadmin = *ask Paul Warren for password*

There are three example projects:
testproject
testproject1
testproject2

Access is restricted as follows:
anyone can modify testproject
only testuser1 and testadmin can modify testproject1
only testuser1 and testadmin can modify testproject2

Example web interface to browse repository on-line

https://rothery3.materials.ox.ac.uk/websvn

Authenticate as one the example users above and confirm what you can see corresponds to the above restrictions.

There is also a less user-friendly web interface provided directly using WebDAV at https://rothery3.materials.ox.ac.uk/svn/testproject

Example confirmation of access controls under linux

mkdir ~/svn-stuff/testuser1
cd ~/svn-stuff/testuser1
svn --username testuser1 co https://rothery3.materials.ox.ac.uk/svn/testproject
(this should work because anyone can modify testproject)
svn --username testuser1 co https://rothery3.materials.ox.ac.uk/svn/testproject1
(this should work because testuser1 can modify testproject1)
svn --username testuser1 co https://rothery3.materials.ox.ac.uk/svn/testproject2
(this should fail because testuser1 cannot access testproject2)
mkdir ~/svn-stuff/testuser2
cd ~/svn-stuff/testuser2
svn --username testuser2 co https://rothery3.materials.ox.ac.uk/svn/testproject
(this should work because anyone can modify testproject)
svn --username testuser2 co https://rothery3.materials.ox.ac.uk/svn/testproject1
(this should fail because testuser2 cannot access testproject1)
svn --username testuser2 co https://rothery3.materials.ox.ac.uk/svn/testproject2
(this should work because testuser2 can modify testproject2)

Example checkout modify and commit

mkdir ~/svn-stuff/testadmin
cd ~/svn-stuff/testadmin
svn --username testadmin co https://rothery3.materials.ox.ac.uk/svn/testproject
echo "Modified by testadmin" > testproject/trunk/example.txt
svn --username testadmin commit -m "Modified by testadmin" testproject/trunk/example.txt

Check on the websvn that the changes are registered correctly. https://rothery3.materials.ox.ac.uk/websvn (login as testadmin)

For more information about how to use subversion see on-line book at http://svnbook.red-bean.com/