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

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

I detest Visual SourceSafe

Ranting ahead, obviously...

All our new projects are in bright, shiny Subversion repositories and humming along just fine. I've got about a month of detour through existing products in Visual SourceSafe and I'm already aggravated on the first day. Don't get me wrong, every source control system has some sort of problem, but VSS is the absolute worst.

The client is a piece of crap; it falls over and corrupts in a swift gale, it's slow, and hangs during CC.NET builds almost as often as not. Branching and merging with VSS is a joke. In a world where Subversion and CVS are free and reliable with multiple clients and integration into IDE's, and SourceGear Vault is inexpensive, why is VSS still so popular in .Net shops?

I've played quite a bit with the vss2svn perl script from Tigris.org. I have no idea if it works or not because VSS keeps crapping out on corrupted history trails. VSS won't even behave long enough to get rid of it.

One thing I'd really like to see from the .Net community as a whole is to stop taking everything from Microsoft without question. There is a whole world of development tools and knowledge out there that doesn't originate in Redmond.

How's this for scary though, in a former job we used VSS under the dark of night on the side because the officially mandated source control system (CC/Harvest ) was even worse.


Comments

Jeremy D. Miller -- The Shade Tree Developer said:

Phil Haack has a great post that's near and dear to my heart, Better Developers Through Diversity....
# February 17, 2006 9:01 AM

Jeremy D. Miller -- The Shade Tree Developer said:

Phil Haack has a great post that's near and dear to my heart, Better Developers Through Diversity....
# February 17, 2006 9:08 AM

Jeremy D. Miller -- The Shade Tree Developer said:

Phil Haack has a great post that's near and dear to my heart, Better Developers Through Diversity....
# February 17, 2006 9:15 AM

Steve Barron said:

Could you (or another commenter) do those of us stuck in VSS-land a favor and post some links to information about how to integrate VS.NET and Subversion or CVS?

I agree that VSS has flaws, but I haven't seen anything like "Subversion for VS.NET Developers", while VSS is relatively easily integrated.

I download and install one of those alternatives every once in a while in a fit of disappontment at VSS but must be missing something important. :)

Thanks!
# February 20, 2006 10:10 AM

nicholas evans said:

I don't know if Steve Barron will be coming back to view responses to his question any time soon (his comment was left many months ago).  But for him and anyone else who happens upon this blog entry I have three items to consider:

AnkhSvn is a very nice tool for integrating SVN with VSS.  It has a few minor quirks, but it is actively developed (which means that it has far fewer quirks than it used to, unlike VSS).  I personally think it is great, and have used it for a long time.

TortoiseSvn is the reigning king of all subversion GUI clients, indeed of all of the source control GUIs that I've seen.  I personally use it much more frequently than AnkhSvn.  It integrates with Windows Explorer.  So, if an alt-tab or Win-E isn't too much trouble, I think you'll find that the VS.Net integration isn't all *that* important.

Lastly, I'd like to suggest that the biggest problems people will have when switching from VSS to svn will not be the client integration issues (because the two clients mentioned integrate with Windows and VS.Net better than VSS does), but with the following necessary paradigm switches: Going from the Lock-Modify-Unlock model to the Copy-Modify-Merge model.  A smart working directory (with lots of useful meta-data).  Copies/Renames/moves/branches etc, should *only* be done via a subversion client, or else versioning will be lost (VSS would lose your versioning as well, but svn working directories have a lot of metadata in them that can sometimes give confusing behaviour if you don't use the svn clients for your copies/renames/moves).

The subversion manual has a good description of these paradigm differences, most importantly: http://svnbook.red-bean.com/nightly/en/svn.basic.vsn-models.html  VSS ostensibly supports Copy-Modify-Merge (under the name "multiple checkout"), but it's implementation is unsafe and should be used only very cautiously.

I cannot (yet) compare svn to MS TFS, but my employer will soon be installing that (because they are full-fledged members of the .Net community that takes everything from Microsoft without question), and I'll be able to compare them then.


Another nice thing about subversion is its multiplicity of clients.  Eclipse plugin, command line, java standalone, VS.Net add-in, windows explorer, linux, mac, windows, solaris, etc.  And better yet, almost every single one of these is free (open source, even) and well-supported.  Multiple platform or client support is not exactly a selling point for VSS nor for TFS (clients exist, but they are quite pricey or not very good).  But, as the blog stated, the .Net community is usually rather ignorant of products and platforms that come from outside the domain of Microsoft.
# August 8, 2006 6:23 PM

Crochetti said:

Jeremy, Our org is considering different source code control tools to manage a number of Supply Chain applications including Subversion, VSS, Clearcase.

One fundamental question: Does VSS have a hook into UNIX ( most of our apps are unix based...) ? I hoping you say no...VSS sounds like it is fraught with issues, yet there is backing for VSS in some quarters...

Thanks!

# June 6, 2008 12:08 PM

Jeremy said:

@Crochetti

VSS is Windows only.  Regardless, VSS should be avoided at any cost.  I'd strongly recommend Subversion (free, solid, minimal friction, common, supported by numerous tools).

# June 6, 2008 2:43 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP