Last year we introduced a new service for all of our computer science students. We gave every student an SVN repository. Initially it was seen as a more complicated tool for accessing code anywhere than the ones they were already using, like dropbox or portable memory. As there’s a learning curve and a risk in trying to adopt something new some students were understandably reluctant to changes their habits.

Now though, the students who have adopted it say that they love it. SVN does so much more than backing up and transproting code because it’s a version control system. It makes it possible to revert back to any previous version of your work. If you make a mistake you can simply roll back to any previous version you committed. It’s like an undo button on steroids!

Know that you have that safety net has another benefit. It gives you a lot more room for experimentation safe in the knowledge that if everything does not go as planned you can roll back all your changes. That both gives you much more freedom and saves loads of time.

SVN does come with it’s drawbacks though. If you try to copy folders that are associated with a repository they will retain their links, which can make committing those folders to another repository problematic. Also, if you forget to commit your work in one location, commit from somewhere else and then return to the original location you may have to deal with conflicts between the copy on the server and the local one.

Pragmatic Version Control using Subversion

SVN is well worth taking a look at. It’s a professional skill that every computer scientist should have an appreciation for. If you want to learn more you could do a lot worse than reading Pragmatic Version Control Using Subversion. It’s very readable and does a good job of describing the benefits of SVN and showing where the pitfalls are.