The limitations of your tools are your limitations. Choose your tools wisely.
Recently CodeProject published a survey to answer the question What Source Code Control system do you use? I find some of the results interesting and a bit unexpected in 2008.
I consider source control part of the fundamental big three tools of software development.
- Source control
- Work item or defect item tracking
- IDE or development environment or compiler
What I find unusual:
- The number of people using no source control seems high.
- Given the known problems, issues, and alternatives to SourceSafe, the number of people still using SourceSafe seems extremely high.
- Given the high cost of the infrastructure and licensing of Microsoft Visual Studio Team Foundation, I am surprised at how many users report using it.
Useful Source Control Tools
The best source control system today is the one you already have. There is a cost to switch to a better one. There is a cost to administer the existing one. There is a cost to administer (and purchase) a new one. Keep in mind the cost of the hardware and the administration to factor in the total cost of a solution. Free licenses does not equal free hardware or free administration.
If you don't have a source control tool or want to switch to a new one, here are three useful source control systems. You may find that switching to one of these tools is actually more cost effective and a better solution than what you have in place today.
- Sourcegear Vault - free licensing for one user
- Subversion and TortoiseSvn - free licenses for all users
- Microsoft Team Foundation Server
How I Came to Choose Vault
I used PVCS for years in multiple organizations dating back to the 1980's. It was a good an useful product, simple yet powerful but not too complicated. Somewhere along the way in the shift from company to company (Sage Software, Intersolve, Merant, Serena Software and now Silver Lake Partners), I believe PVCS lost it's vision and became too cumbersome and complicated and I think it's market share reflects this. It was a good product. I've even recently used PVCS Dimensions for customer projects. It works and does it's job of version control, but it's no longer a compelling product.
In 1996, I was trying to do remote source sharing between the United States and the United Kingdom. None of the tools worked well over the Internet (not even over a T1 line). Both PVCS and VSS failed miserably. The best we could come up with was remote desktop control and file transfers. I think somewhere around that time SourceOffsite came out. I didn't try it.
In 2001, I switched from PVCS to VSS for projects. VSS is deceptive. It appears like a cost effective tool because when you buy the MSDN subscriptions it's included. It appears simple at first, but it's not very powerful. What you get for free eventually costs you in lost time, lost files and lost changes (search for "VSS issues"). With the VSS version I used up to 2003, If you tried to work remotely using multiple developer sites, it killed time and bandwidth just trying to get in sync.
In 2003, someone at Callisto Systems suggested I try Vault by Sourcegear.
Vault was everything all the other source systems were not.
- It seamlessly imports files and history from existing VSS databases.
- Most importantly, it was easy to identify missing files that were not checked in to the source control system.
- The smart client worked the way a lot of file operations are supposed to work on the desktop (i.e. there was no cumbersome web only interface for remote access).
- The smart client integrated seamlessly with Visual Studio.
- There was a standalone Web Interface if you wanted it, so you could work even if the full client software wasn't installed.
- The client would automatically tell you which files were in sync and out of sync which saved time in updates.
- The client would pull only the most recent files for updates so it minimized bandwidth.
- Vault had a command line tool to support automated builds / gets.
- Vault is has a free license for one user (the 10% of the folks that use no source control now have no excuse).
I tried VSS, PVCS, CVS, Subversion and I still think in 2008, Vault is the best overall solution for source control.
In 2005, I tried to test Microsoft Visual Studio Team Foundation Server. I couldn't put it on any existing workstations I had and I only had two servers in the office that met the hardware performance criteria and they were both Domain Controllers. VSTFS will not install on a Domain Controller (I tried).
Source Control Poll Results
2008 CodeProject Source Code Control Poll Results
2006 Vsoft Version Control Systems Poll