CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Darrell Norton's Blog [MVP]

Fill in description here...

Why do developers still use SourceSafe?

Scott Nonnenberg asks why anyone still uses Visual SourceSafe (VSS), especially versus CVS, after some recent bad experiences with it.  Here’s my take on the situation.

The nice part is that VSS actually integrates with VS.NET while CVS does not.  For CVS, you have to install CVS or CVSNT, then grab TortoiseCVS for a GUI, and some other software (from commercial vendor PushOK ($19) or the open source SCC plugin for TortoiseCVS) to integrate with Visual Studio.

The reason why many developers still use VSS is because it provides all 3, a version control system, a GUI app, and Visual Studio integration, in one free package.  Even though you can get all 3 parts via open source software and piece them together for free, people still pay lots of money for SourceGear's Vault because it already pieces it together for you.  I expect to see open source software improve its integration with VS.NET now that the SCC API no longer requires an NDA.

I don't know what the environment that Scott was working on is like, other than the pre-Beta status had something to do with it, but I rarely run into data corruption issues working on teams of up to 10 developers.  You do have to manage VSS and the server it resides on well, which may be a challenge to some people (I’ve seen it several times where the VSS database resides on the oldest, slowest, worst POS computer in the company, and they blame VSS for the problems!).  But I'm still scared enough to move to CVS or Vault.

The downsides to VSS are that there are no atomic commits, the UI sucks, documentation is sparse, and it doesn’t work well over a distributed network (which is why Source OffSite from SourceGear does so well).  And it doesn’t natively support secure communication; you have to setup IPSEC on the server (which you should do even, no especially, on your internal network at work/home!).



Comments

Darrell said:

Udi - yes, I've been considering it. At home I use CVSNT or VSS depending. Vault may take over VSS for my single-person pet projects.
# February 18, 2004 8:22 AM

JosephCooney said:

I noticed that the MSSCCI (which I think is the same as the SCCAPI for integrating Visual Studio with a version control provider) is now free (in the past you had to sign an NDA) so maybe we will start to see more free version controls systems that integrate with Visual Studio

http://weblogs.asp.net/korbyp/archive/2004/02/12/72211.aspx

I think there is a free 2-user version of Perforce available too.
# February 18, 2004 9:58 AM

SteveH said:

I tried the 2 user version of Perforce many months ago but I dropped it as soon as I found out it doesn't intergrate with VS.NET. Maybe that's changed now but I certainly wasn't going to use a source control package that forced me to use an external GUI.
# February 18, 2004 12:13 PM

Darrell said:

Joseph - I hope so! I tried using the VSS automation code samples that MS posted a while ago (which contain the interface and were freely available), but they didn't work for me. Hopefully others can make it work.
# February 18, 2004 1:29 PM

Darrell said:

SteveH - yes, that was one of my requirements. Integration with Visual Studio is required in my opinion. Like the pragmatic programmers say, you have to make it easy to do the right thing.
# February 18, 2004 1:29 PM

JosephCooney said:

Wow - I just assumed that since Perforce was a commercial product that it would work with VS.NET. Disappointing. I use VSS at work (because of the VS.NET integration) and Subversion at home. I like having version control "built in" to the shell.
# February 18, 2004 1:46 PM

Darrell said:

Joseph - how is subversion? Is it any good? Integration, GUI apps, etc.? Inquiring minds want to know!
# February 18, 2004 1:55 PM

Matthias Cavigelli said:

I use Visual Studio for coding and WinCVS as CVS client. I like the fact that not everything is integrated. WinCVS is the tool which does the source control stuff, VS the coding stuff.
Sometimes I also use TortoiseCVS for the control stuff and jEdit for coding.
It's more decoupled without the integration. The missing integration is for me not really a disadvantage.
# February 18, 2004 7:39 PM

Darrell said:

Matthias - from my experience integration was what sells source control to developers that aren't used to using it. As a consultant I see this a lot more than I should. The integration may not be necessary for developers that understand source control and have bought in to it (like you), but otherwise I think it is necessary.
# February 19, 2004 12:30 AM

James Greig said:

One quite nice feature of VSS is its integration with MS Access. Although the Access integration leaves a lot to be desired, it is a massive help with projects having >1 developer. Does anyone know if any other source control systems integrate play nicely with Access?
# February 19, 2004 3:14 AM

Kirk Graves said:

Your average developer won't try something new unless it takes very little effort to use / learn. As an independant consultant I have learned that getting a company to adopt Best Practices is much easier if I can show them how easy it is. There has to be an obvious benefit to cost ratio.
# February 19, 2004 3:16 AM

Darrell said:

James - I don't know of any that play nice with Access. When I have to deal with an Access database, I just include the entire mdb file in VSS for versioning. Not great, but it works.
# February 19, 2004 4:23 AM

Darrell said:

Kirk - agreed. It is also better to suggest best practices when the client is experiencing pain. The pain provides an impetus or motivation for action!
# February 19, 2004 4:24 AM

Brent Ferree said:

Can anyone hit me back with some ideas on how to better sell the VAULT product to my team?

I am totally not having any luck, my two biggest opponents to purchasing vault tell me just to deal with the CVS issues and use the command line tools. Both of them have contributed LITTLE to NO code to the project and cite their past experience with java projects and how great CVS is/was.

To them VS.NET integration is not important.

I admit the command line does work but we're working on a project with about seven solutions and ten projects with a large budget and it's a pain to keep switching to different tools to get a file and put it back and to make sure the csproj file is correct and the whole nine yards.

Heck, I'd gamble with sourcesafe at this point but I really want vault.

If you can point me in a different direction to help me win this battle I'd greatly appreciate it! You can contact me at: brentferree@hotmail.com
# March 23, 2004 2:09 PM

Darrell said:

Brent - at the least use TortoiseCVS (http://www.tortoisecvs.org/). If you need CVS-SourceSafe integration, check out either the TortoiseSCC plugin (http://sourceforge.net/projects/cvssccplugin/), or the CVS_SCC Proxy from PushOK (http://www.pushok.com/soft_cvs_proxy.php).

As for Vault, I'm sure if you post to the Vault forums, someone at SourceGear or a user can help you out.
# March 24, 2004 1:47 AM

Darrell said:

Brent - I hope that helps. Sorry I don't use Vault, so I can't get into the specifics. Maybe one of the many Vault users out there can help?
# March 24, 2004 1:48 AM

Brent Ferree said:

Thanks for the replies. The team I work with has purchased PushOK in an attempt to have CVS integration but it's a little bit lacking and buggy.

OTOH, I use vault with a different team and we are all working at various locations across America and it works perfectly via the internet. The vault integration with VS.NET is top notch. Getting web projects including microsoft content management server based projects works very well with vault and not so well with CVS.

That's the biggest problem we are facing to get new dev computers hooked up and running the project because there are so many hacks to get integrated source control using PushOK. The second biggest problem is merge conficts that occur when only one person has actually modified the file and checked in / out over the course of a few hours. But at least it's free right ARGH!

Maybe i'll be able to convince them to purchase vault someday since it's price has dropped. ... There is hope :)
# March 31, 2004 4:08 PM

Darrell said:

Brent - gather up estimates of how much time you are wasting on CVS that you don't have to with Vault. After a while, compile the numbers, assign a dollar value to the hours, and show management how much they would *save* by purchasing Vault. Good luck!
# March 31, 2004 4:38 PM
Check out Devlicio.us!