Subversion is a version control system that keeps track of changes made to files and folders (directories), facilitating data recovery and providing a history of the changes that have been made over time.
As a supplement to the basic IT services that ITS provides, you have the oppertunity to get access to a Subversion (SVN) server.
If you are a student be sure to know your group number before trying to access the SVN server. If you do not know the group number, ask the study secretary at your respective department.
In the sub pages to this page you will find guides on the usage of the Windows Subversion client named TortoiseSVN.
Subversion repository lifecycle
Before reading the subsections it is useful to understand how the various SVN (Subversion) concepts interleave during the life of a repository.
Before you can work with an SVN repository you must check it out from the server. This is accomplished with the checkout command. It retrieves a copy of the repository, ready for modification. At this point, you can start to work with the files in the repository. If you add a file you want Subversion to control, use the add command. If you wish to remove a file, use the delete command. It is also possible to ask Subversion to completely ignore files in the repository. Any editing to files will automatically be registered. Once you have completed work and need to push it to the server where your collaborators can retrieve the changes, use the commit command. Conversely, if other collaborators have pushed changes, you can retrieve them with the update command. Indeed, the update command must be run before a commit command if your copy of the repository is older than the one on the server. If you have made changes to one or more files that have been modified on the server since your last commit, you will have to resolve conflicts between the two versions. Finally, you may wish to migrate the files of a Subversion repository without necessarily storing all the Subversion-specific data - a clean copy, so to speak.
It is unnecessary to familiarise yourself with every command and concept from the very beginning. Start by checking out your repository and return to these guides every time you you need to handle a new concept or refresh an old one while working.