Get In Gear!

If you have been developing software for some time, especially with a team of developers, it's very likely you have used some sort of source control system like CVS or Microsoft Visual Source Safe. In many projects that I worked on we used Visual Source Safe. However, this program has a lot of shortcomings.

The biggest drawback that I experienced with Source Safe is its speed over slower connections. I often work from home while connected to the office with a VPN connection. When I start working in the morning, I usually want to get a latest version of the entire application, so I can continue working with the most up-to-date version of the application. With Visual Source Safe, I'd issue the Get Latest Version command, and then I had all the time in the world to get myself some coffee, read the paper and feed the cat. It would take ages before the application was synched over the network.

Not so long ago, I started experimenting with Source Gear's Vault. My digital friend Peter Lanoie had been recommending Vault for quite some time, but I never found the time to check it out. If only had I known.....

Using Vault is very easy. Just download the Server Edition of the program, install it and you have most of the hard work done already. After you install it, simply enable Vault as your default source control provider through the Vault client's Options dialog, start a new .NET project and choose File | Source Control | Add Solution to Source Control and follow the instructions you see on screen.

Ever since I installed Vault, my source control has been much easier and faster. In many ways, Vault looks very similar to Source Safe. It has the same features, uses the same names (most of the times; some concepts have been renamed to better suit their function) and has a similar look and feel.
However, Vault runs as a set of Web Services which is truly an amazing concept. Accessing your code through a simple Web service allows you to connect to your source from anywhere in the world. All you need is the Vault client and a network that supports port 80 and / or 443. I now find myself regularly getting a file from my home server at work, because I need some code that I know exists in an other application I have running. It also allows me to connect to my work server when I need to finish some work at night or over the weekend.

Of course such an open system needs some protection as well. Strong passwords, folder level security and SSL will help you protect your valuable sources from untrusted users.

If you're tired of Source Safe, or just want to start using a source control system, go check it out. If you're the only developer working on an application, you're in luck. The single user license of this program is completely free.

And no, I am not sponsored by Source Gear; I just think Vault is an amazing product.

Where to Next?

Wonder where to go next? You can read existing comments below or you can post a comment yourself on this article .

Consider making a donation
Please consider making a donation using PayPal. Your donation helps me to pay the bills so I can keep running Imar.Spaanjaars.Com, providing fresh content as often as possible.

Feedback by Other Visitors of Imar.Spaanjaars.Com

On Wednesday, December 22, 2004 3:41:44 PM Peter Lanoie ( said:
Two thumbs up for Vault from me!

One of the few things I've found that differs significantly from Visual Source Safe is the lack of folder/file drag-and-drop functionality.  When you want to move or share an item in VSS, you just drag it to the destination folder/project.  When you drag and drop in windows explorer the item is moved or copied.  Given that this same user action is supported in VSS it is far too easy to accidentally share a file when you don't mean to because the expected outcome is assumed to be similar to that of the windows explorer action.  Perhaps this is why Vault doesn't support it.  Fortunately, SourceGear thought out the alternate functionality.  You can move or share an item thru the application's menu options or with an item context menu.  The resulting dialog shows the folder/project tree in the same state (open/closed nodes) as the tree in the main application window thus eliminating repetitive drilling down in the tree to locate the share or copy destination.

I have noticed that the response time is generally good and consistent.  On a LAN setup it is a little slower than VSS (due to the addition of the HTTP middleman) but this may also be due to my environment.  My home environment (where I've used vault the most) has the Vault source service hosted on a single older test server (which is also running SQL server and hosting test web sites and file shares).  I'm sure this has skewed my observations a bit.  I can say that the response time over the internet is not perceptively slower than on the LAN.  I often access my source vault from work and am extremely impressed with the response time when accessed remotely.  This in itself is worth the slightly slower LAN response.  I have worked in environments where we needed to access VSS over a VPN.  If you have ever tried to use basic windows file sharing over a VPN you know how horribly slow it can be.  Since VSS uses nothing more than file sharing, the result is nearly intolerable.  This makes Vault an extremely compelling replacement.

Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the QuickDocId of the document.

For more information about the Talk Back feature, check out this news item.