Okay, so "everyone" hates Visual SourceSafe. But the simple truth is many .NET developers have access to it for free because it comes with their MSDN Subscription. So a lot of .NET developers use it and they are familiar with it. Not because it's the best, but just because it's there.

When we launched the new company we too went with Visual SourceSafe because it was included in our subscriptions, we were familiar with it, and it was better than nothing. But since then it has failed us in the biggest way possible. SourceSafe corrupted one our files and we lost the history on it. We were able to recover with effort, but a source control repository must be reliable. And SourceSafe's screwed up file based system is not.

So the search began for a new source control solution. What we discussed initially were three options: Team System, SourceGear Vault and Subversion.

Visual Studio Team System

From our team of four, only one of us had extensive experience, but she loved it. The problem is price and overkill: $5,000 per person compared to $1,300 per person was a huge leap, $10,000 for anyone that needed the full suite. And that doesn't include any server licensing or hardware. Ouch. Microsoft prices this product for big enterprises and uses Rational as it's pricing point. Plus, it really is overkill for the problem we are trying to solve. We already have a product management solution (TargetProcess) that everyone is very happy with. We just need source control. So this never made it past the discussion stage.

SourceGear Vault

This is where our adventure begins. I had worked with Vault in the past and was happy. It works mostly like SourceSafe but with a SQL Server back end. The pricing is reasonable at $250 per license. We really expected this to be the product we went with. Then we hit a snag. SourceGear requires IIS on the server and it does not run in native 64-bit mode. We have a single server right now, and we can't run it in 32-bit mode without negatively effecting the other web applications. We didn't want to run a second server and we didn't want to run a virtualized server just for this product. So we moved on, with the agreement that we would re-visit this product if we didn't find something else.

Subversion

Now I know a lot of developers, including .NET developers, that swear by Subversion. And I know a lot of developers that just swear about Subversion. The real problem we anticipated was .NET integration. I have worked with Subversion before and was not impressed by the client tools. Those were the early days of Tortoise and Ankh. Well, I can now say that not much has changed. I still don't like Tortoise, and no one else on the team was crazy about it either. I'm not saying there is anything wrong with it, I just don't like it. Us old middle aged guys start to get set in our ways :)

We tried VisualSVN, both the server and the client. It's priced very well at $50 per user. The server worked great. Simple setup, simple to use. But the Visual Studio client still sat on top of Tortoise. We had a few issues getting the solution imported and setup, another problem with Vista 64-bit getting Tortoise installed and several bugs actually inside Visual Studio. My favorite was after install when Visual Studio must have thought we were now running Express edition and kept popping up warning messages on launch that our Professional version didn't support source control.

The comfort level wasn't there and we have work to do, so we moved on. But that was strike three. Time to do some more research.

Looking for more options - SourceAnywhere

After some Internet research we found SourceAnywhere. On the surface it appeared to be identical to SourceGear. It was setup to function like SourceSafe with a SQL Server back end. It was even priced close to the same at $240 per license. The only problem is no one had ever heard of it.

The Good

We set it up and everything worked the first time. The server installed without any 64-bit issues. The client installed with any problem. And all of Visual SourceSafe's files and history imported without issue. We were off to a good start.

You can choose to turn off exclusive checkout's on a project and the merge tool works fairly well the few times I have used it.

Visual Studio runs much faster. Even launch times are greatly reduced.

SourceAnywhere was designed to scale to large groups. They even have cache servers for remote locations.

The Bad

So far there have been only 2 minor problems with the software.

First, the project structure was off when we loaded it in Visual Studio. It asked us to re-map the project folders the first time and everything worked. But it kept asking every time we loaded Visual Studio. Removing the project from the solution and re-adding them fixed the problem.

Second, the check-out window that loves to cancel. I have a habit of just typing and letting Visual Studio check-out the file in the background rather than explicitly checking out the file. SourceAnywhere pops up a status box rather than using the status tab in Visual Studio. What happens is, as I am typing away, if I hit the enter key before the checkout is complete, it activates the default button on the status window, which is of course Cancel.

The Ugly

I'll start off here by saying this is really picky and has nothing to do with the technology.

The company does a couple of things I hate. They leave their sales pitch cookie-cutter comment in the comments section of blog posts. See here. I found this twice when doing research. They also use the big giant head of some customer that likes their product and a useless quote on their website. See here. These always just seem cheesy.

Summary

Overall it looks like we will go with SourceAnywhere barring any new disasters that pop up in the next 3 weeks or any vicious horror stories left as comments to this post.

Why? Because it works like SourceSafe, but also it just works.