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.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. 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 is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://www.topsham.com Paul

    Source safe is absolutely useless, any problems and your back to carefully sorting out files yourself. Therefore VSS doesn’t do the job it is designed for. A classic error from VSS is when it says a file is checked out by someone else, then you check who has it checked out and it turns out to be yourself. Do NOT even think about using this rubbish. This is classic MS junk!

  • Jeremy

    @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).

  • Crochetti

    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!

  • nicholas evans

    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.

  • http://www.stevebarron.net Steve Barron

    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!