I think that I may have found a dirty little secret about Visual SourceSafe. Most people never back it up and even fewer people ever try to restore it.
I made this discovery the hard way after running into big problems installing/uninstalling Visual Studio 2005 CTP and the latest version of SQL Server 2005. I tried to install the Beta 2 of VS2005 on Sunday and it really hosed me. It got very unhappy with SQL Server 2005 beta xxx and then neither of them wanted to uninstall. Then VS2003 stopped working and Visual SourceSafe was just not in the mood to participate. Error messages ensued and there was much gnashing of teeth and hunting around in the registry. So, what started out as an exercise in learning some new technology turned into a multi-day panic attack because I couldn’t do any actual pressing due-soon has-to-be-done work.
Eventually, I had to uninstall Visual Studio 2003 and SourceSafe and re-install. Apart from the time it takes to do the uninstall and re-install, I was feeling pretty good about this because I do frequent backups of my SourceSafe database and all my code. I figured that this would make everything wonderful and happy.
Trying to restore a database from the VSS administrator (Achive –> Restore Projects) is…uhhhmmm….well, it’s technically not impossible but it’s far from obvious.
Here’s where the dirty little secret part ties in. Go ahead. Try to to a google search on restoring a VSS database. There’s NEXT TO NOTHING. Oh…you’ll find a few things but they either don’t really tell you how to do the restore, or they have “restore“ in the title but then only say how to do the backup, or (drum roll) they don’t really work at all.
After a good amount of panic (“Holy Shit! I just lost my source code!“) and LOTS of digging around, I found this article, “How To Restore an Entire Database Archive with Restore Wizard“. GLORIOUS! Anyway, without actually saying it, the article says that it just doesn’t work right and that you need to jump through a few improbable hoops to restore your SourceSafe database.
And as an aside, here’s how to backup your SourceSafe database from the command line:
ssarc -d- c:VisualSourceSafeBackup.ssa $/
“ssarc.exe“ is probably located in “C:Program FilesMicrosoft Visual StudioVSSwin32“. I say “probably“ because during this little ordeal, Visual SourceSafe managed to install itself into the Recycle Bin. Yah. It’s true. I couldn’t believe it. The VSS installer installed the whole effin’ thing into the Recycle Bin.
So. The moral of the story is….SourceSafe sucks and be sure to block out some time to install and learn Subversion.