Turnersville, NJ—Keeping previous versions of files, and merging changes from multiple developers has been an important part of the development cycle for programmers for a long time. But developers using Microsoft Visual Studio who wish to use source (or version) control for their projects have been relegated to the only game in town, Microsoft Team Foundation Server (TFS).
What is source/version control?
For those of you who aren't familiar with source control, suffice it to say that it's a software addition to your development environment that allows you to check your code in and out, for use in a multi-developer environment. In addition, this software allows the developer to "roll back" files to any checked-in point in history, and to merge changes from multiple developers in the same file. This last benefit serves even the individual developer.
So, what's wrong with Team Foundation Server?
So why not use Microsoft Team Foundation Server? Well, it is a nice product, with many benefits. But TFS is prohibitvely expensive when purchased for more than 5 concurrent developers, and the "free" version that comes with a "not-free" MSDN subscription only supports up to 5 developers in total. In addition, TFS doesn't work outside of the Visual Studio environment, and doesn't handle non-Visual Studio file types in a very elegant fashion. So what is a developer to do?
There are several low-cost or free source/version control server products out there, including the popular Subversion (a free, open source product, used by Google Code, among others). But the missing piece has always been the integration with Visual Studio itself. The closest we've come is using the free Tortoise SVN, which integrates Subversion (SVN) into the Windows explorer, but this meant that code check-ins, check-outs, merges, etc. all had to be done outside the environment. In addition, there were no visual cues as to the status of files within the VS IDE.
Enter VisualSVN
VisualSVN represents the missing piece to the source control puzzle. For under $50 per developer, Visual Studio developers have access to an enterprise-grade source control system, compatible with any Subversion server that has HTTPS access enabled.
Visual SVN provides the icon badges in Solution Explorer, right-click access to all the important Subversion features, and even a dedicated menubar option to manage and configure the add-on itself. VisualSVN is not a hack. It uses the built-in source-control add-on API to integrate itself into the VS IDE. It's a real beauty! It also uses the free Tortoise SVN product to communicate with the Subversion server, which is great. This gives you a way to edit your source files quickly in a text editor without launching Visual Studio. You can then check in your changes right in Explorer.
Oh, and did I mention that you can put any kind of files into Subversion source control? For example, I put my Sandcastle help file builder and compiled help files into source control with my applications, as well as any graphics or other necessary project files. I may not see them in Visual Studio's solution explorer pane, but if I make changes to them and check in my solution, the lot of them gets checked in. I can also check them in from Explorer, outside the IDE.
But that's not all. The developers of VisualSVN have released a FREE (as in beer) Subversion server product all wrapped up in a simple Windows installer file. By running this file and picking which secure port to use for communication, this installer sets up Subversion, Apache, and everything else necessary to have a fully functioning Subversion server in less than a minute. It peacefully co-exists with IIS and any other web server you may have running, and upgrades to the server are as simple as running the latest installer. The Subversion server (VisualSVN Server) also features an MMC application for managing the repositories, users and groups. It couldn't get easier.
I use this environment in my daily development cycle, and I recommend that you do as well. Visit http://www.visualsvn.com to check out the trial version. VisualSVN Server is free to anyone, and works with TortoiseSVN (again, also free), or any other Subversion client you prefer.