I recently helped a team to switch SVN servers and found a few gotchas along the way. This is a short guide on what worked for me and some stuff I tried that didn’t.
The reason for migrating to a new subversion server was that Atlassian shut down their hosted subversion service. The team had been dragging out on the migration for far too long (there was more than a year’s notice). When they asked me for help, there were only a few days left before the old service was shut down. They said that they had considered moving to git and that there was probably a server set up somewhere by the operations department.
I had a quick look at the repo and asked the team about their situation and found out a number of facts to take in consideration for a move.
A gziped dump of the repo was about 1.3GB
The repo had not followed the standard trunk/branches/tag structure. A few levels below a trunk directory I found another set of directories: trunk, branches, tags.
The repo contained code from different projects. Some legacy that were no longer needed, some being actively developed.
There was no time for a long service window. I basically had to get everything moved from one working day to another.
All the code samples on this blog have been tested and run before publishing. The sample code is now available on GitHub.
Most of the time when I write code for the blog I do that in a number of test projects that I do have. So far I’ve kept them in an svn repo, but the time has come to move on so I’ve now pushed all the test code to a public GitHub Repo. I do try to keep the code samples in the posts complete, but sometimes it is simply not possible to add all the supporting code needed to the post itself. Now everything is available to use in the repo.
The code that is intended for reuse is mostly located in the CodingAbelNu.Utilities library. I started it out with the intention that it should be a nice-to-have utility library that could get released separately. I don’t think that I’m there yet, but feel free to use it as it is.