Steve Barron asked for a pointer to a VSS alternative. My team uses the open source Subversion system for source control and we’re very happy with it. The best thing to say about it is that it almost never gets into the way like VSS can. Continuous Integration is certainly much smoother with Subversion.
For a Subversion client we use a mix of the TortoiseSVN client that integrates into Windows Explorer as a shell extension and the Ankh plugin for Visual Studio.Net integration. I like Ankh, but I could honestly live without any IDE integration. Subversion uses an optimistic locking scheme so multiple users can simultaneously edit the same file. It sounds a little scary at first, but the merging isn’t really that big of deal and the convenience factor outweighs the negative results. Just think what a pain in the neck it was with VSS constantly fighting over who had the project files. The Subversion clients are smart enough to recursively find new files all at one time, so the client is a lot easier to use from outside the IDE than the VSS client is. Plus I’ve found Subversion to be much faster than VSS.
There is a conversion script to migrate a VSS repository to SVN at http://vss2svn.tigris.org/. We didn’t have much luck with it because of some VSS corruption issues, but a friend of mine was able to use it successfully.
I’m not fond of CVS because of some bad experiences in the past, but it’s also a viable choice.