Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Having spent all morning trying to check something in - I now realise I've lost a couple of days worth of work.

Its happened before - and is apparently common occurrence with SourceSafe. Can SourceSafe be used successfully, without problems, and if so, how?

share|improve this question
40  
Oh dear God NO ... never, ever again! –  Tim Post Dec 9 '10 at 13:22
2  
Possible Duplicate: programmers.stackexchange.com/questions/19085/… –  Bobby Dec 9 '10 at 13:22
27  
I fought long and hard to get SourceSafe out of my company. Eventually won and everyone is happier for it. –  Kevin D Dec 9 '10 at 13:52
13  
Any organization using VSS is a bad "org smell" –  JoelFan Dec 9 '10 at 15:45
8  
The phrase "Checking in early and often." is to prevent these kinds of situations. You should never lose more than a few hours of work. However, Iron Maiden said it best about VSS: "Run to the hills! Run for your life!" –  Ryan Hayes Dec 9 '10 at 17:46

18 Answers 18

up vote 45 down vote accepted

My view is simple, migrate to something else ASAP. It won't take long (1-2 weeks WAG) and no matter how long the migration takes, it's easy to cost justify that to management. A little time to migrate equates to solid source control and very little chance of lost source code. Do a quick google search for "source safe horror stories" or similar if your boss is skeptic.

share|improve this answer
2  
@t3mujin, see the discussion on "technical debt" programmers.stackexchange.com/questions/18059/… –  Nemi Dec 9 '10 at 16:52
3  
@t3mujin: migrate it project-by-project. Where I'm working, we used to use SourceSafe, now we use TFS. Migrating everything (hundreds of projects) would have been a pain, so instead, if we have work to do on an old project still in SourceSafe, we first spend the small amount of time migrating it, and only then start work. –  Carson63000 Dec 10 '10 at 0:23

Worst. SCM. Ever.

All that is wrong in SCM is embodied in VSS. Even StarTeam is better than Source Safe. Source Safe is the Internet Explorer 1 of the version control world: entirely superceded by any other implementation.

How did I use it?

My typical workflow for getting things done was

  1. Check out the project
  2. Lock all the files (to avoid merging with anyone 'cos that opened the unholy gates of Hell)
  3. Did my work
  4. Each day checked my changes in
  5. Checked it all back out again and fixed all the problems with integration
  6. Checked it back in

In comparison to Subversion, the above is laughable (apart from checking you've not broken the build).

Restrictions to my team's programming practices

These are the rules the team had to work under to make it work for us. Your mileage may vary.

  1. One person only may edit a file (Heaven help you if they go on holiday)
  2. Do not branch it's too hard to manage
  3. Never attempt to go back to a previous revision

What can be done?

Polarion has a good set of tools for migrating from the likes of Source Safe into Subversion (SVN) which is the current de facto standard within most enterprises for open source version control. Subversion does suffer from requiring a server to be available to allow checkins (unlike GIT or Mercurial which are designed for distributed offline teams).

share|improve this answer
9  
+1 for the unholy gates of hell –  BlackICE Dec 9 '10 at 13:38
2  
yeah, branch and merge aren't really fun in a good SCM. I don't think congress would allow you to make people do it in sourcesafe. –  BlackICE Dec 9 '10 at 13:46
1  
Never go back to a previous version? Why not? And if so, what is the whole purpose of using a SCM tool? –  JoelFan Dec 9 '10 at 15:44

Change your Source Control to SVN/Mercurial/Git and never look back!

share|improve this answer
3  
It's "Mercurial", not "Mercury" (just picking some nits here, no offense) –  Jürgen A. Erhard Dec 9 '10 at 16:50
1  
Never stop learning, Thanks! :) –  Amir Rezaei Dec 9 '10 at 17:47

We took it out of operation about a year ago.

It happened several times that what I'd checked-in on the previous evening just wasn't there the next morning. I didn't find that amusing because it looked suspiciously like I just hadn't finished my work. Since I was new to the company then it might have been dangerous to me.

We them moved on to the TFS and it's been operating smoothly ever since.

share|improve this answer
1  
+1 for taking it out operation. You did the right thing. –  Gary Rowe Dec 9 '10 at 13:38
1  
TFS is a beautiful, beautiful thing. If you've got the dough to pay for it, that is. –  Adam Crossland Dec 9 '10 at 18:07
2  
@Adam Crossland: Beautiful like a big diamond, and about the same price. –  Orbling Dec 9 '10 at 23:56
1  
@Orbling: well said. –  Adam Crossland Dec 10 '10 at 3:06
1  
For those who don't recognize the abbreviation, TFS is Microsoft's Team Foundation Server. –  Keith Thompson Nov 6 '12 at 1:26

My view?

There's better ones that are easier to use, safer to use, and are completely free. Why bother using it at all?

This is one area of development where we have plenty of choice; most, or all, better than VSS.

share|improve this answer

Using SourceSafe in a commercial operation is like heating the building by burning dollar bills.

In 2000, my eight-developer company probably lost 5-10% of its productivity because of the twice-daily-on-average corruptions of VSS databases. It was only that low because we'd gone to hourly backups.

Since moving away from VSS to Perforce, svn, and git, I've never had an SCM database become corrupted.

share|improve this answer

I may get down voted to hell on this, but ..

alt text

VSS effectively puts you on dope, to the extent that you can't reconcile any sort of reality needed to realize that your now borked repo wasn't your fault.

Please, don't use it, ever.

share|improve this answer

used it for years - it was the default solution, as it was already there. Had it bite me quite a few times, but inertia is difficult to overcome

then i had to use it remotely over VPN, and even minor check-ins were like stuffing a brick through a pinhole. It was faster to manually find the files that changed, zip them up, email them, remote in to the source vault machine, unzip them, and check in the code from the source vault machine.

Switched to Mercurial. I can clone the entire source code base across the VPN in under a minute. And I no longer fear branching.

Never going back.

share|improve this answer

It's an abomination. But still better than nothing.

share|improve this answer
12  
With all the alternatives, it's hard to justify using, because when it goes south, that's what you'll have: Nothing. –  DevSolo Dec 9 '10 at 13:34
13  
How can it be better than nothing if it causes you to lose work? –  billy.bob Dec 9 '10 at 13:42
4  
You can lose work with nothing as well, sourcesafe can at least save you sometimes. –  BlackICE Dec 9 '10 at 13:47
4  
@David - so can sensible backups before doing anything potentially 'icky'. The only thing that rivals VSS in failure is MS BOB. VSS is so horrid that a charity should be created in the name of curing people from using it. –  Tim Post Dec 9 '10 at 14:27
9  
No, it is worse than nothing. Because if you don't ALSO have backups, you have a false sense of security and can lose EVERYTHING –  CaffGeek Dec 9 '10 at 15:01

I used it for a long time (nearly 10 years) without ever personally experiencing any issues (including within the teams I was working in though our code tended to be fairly well divided up to avoid conflicts and the like).

But there are far too many stories of data loss to keep using it when there are decent, reliable open source alternatives out there.

Edit: From the comments the message seems to be avoid anything complex (branching, merging, conflicts) and you're probably fine. Anything more and you're heading into risky territory.

share|improve this answer
1  
FWIW my experience is similar to Jon's. 7 years, 8 person team, no problems using VSS. Apparently we're in the (lucky) minority. I would never use it again based on all the stories (using SVN now). –  Steve Fallows Dec 9 '10 at 13:59

Even MS is deprecating it in favor of TFS.

For a solo or really small shop working in Visual Studio 6 or something older it is passable and better than nothing. I think there is a lot of exaggeration about how bad it was, but then it only takes one instance of losing valuable work to sour you on a product (for good reason). VSS had its place, and I credit it for at least encouraging a lot of developers who were using no SCM tool at all to get into the habit, but like many technologies it is now pretty much obsolete.

share|improve this answer
2  
+1 for a pretty fair overall assessment –  Gary Rowe Dec 9 '10 at 17:15

After 3 years of using it, complaining off and on to my manager because of all the more advanced/rational alternatives out there, I've never really had a problem with VSS, but I've never had an option either.

My views are that it both sucks and blows.

The most annoying part about it is not it's awful versioning and confusing branching ability, but the list box on the file menu doesn't let you hit the right arrow key to expand.

Truly painful.

share|improve this answer

My view on VSS ? I declined a few job offers (very well paid) because they requested "VSS proficiency". And I am sure there is a couple of other people here who did the same.

share|improve this answer
1  
+1, putting "VSS proficiency" on a job ad is a sure sign that not only does the company use VSS, but that they have a setup where VSS is already so corrupted and problematic that it requires genuine VSS experience to make it work at all. –  Carson63000 Dec 10 '10 at 0:36

Not only do you suffer from the problem of potential corruption of source (which should be argument enough for management to replace it), but you also have to live with awkward backup and an inability to work effectively as a team on different streams of work.

Find another SCM (any other one) and look at how easy branching and merging can be. Think about those times when you've had to copy files out of your VSS solution and hold them somewhere else while you went back to fix a bug on 'production' code.

For kicks, just install GIT - point it at your VSS files and see how easy it is for GASP two programmers to work on different parts of the same file AT THE SAME TIME, and then have the software intelligently merge your changes... SCM tools should be more than just source backup.

share|improve this answer

My views on VSS? Used it for a long time regularly (still used ocasionally for older components) but it's too XX century for our team:

  • Very unreliable
  • Not usable branches
  • Very poor versioning support, you have labels but (just like branches) not really usable

I'm with all of the above: choose one of the waaaaay better open-source alternatives (even old CVS) or, if your company has some kind of MSDN subscription, TFS.

share|improve this answer
  • its default locking was slowing developers down, and no one wanted to mess with its setup
  • it doesn't integrate with other services very well, for example a project management web application
  • it was not going to work well with our planned CI server

The new 2010 Team Foundation stuff was supposed to help a lot, and try to get away from the bad parts of VSS. But at its core it still relies on VSS, which is why we moved to SVN.

edit - I understand that TFS is all new, but when testing it, multiple developers I asked had very similar feelings to it. The reason I said 'at its core' was because I remember looking at the files TFS made in my solution that looked just like those VSS made. This is from a developer standpoint, maybe not even knowing about the tech behind VSS or TFS or any other SCM. Sorry for any confusion.

share|improve this answer
2  
Visual Studio uses the same SCC plugin API for TFS and VSS. This API supports VSS and has a VSS feel to it, so when you change from VSS to any other source control server, it will feel as if the ghost of VSS is still there. –  MatthewMartin Dec 9 '10 at 21:17
1  
@LWoodyiii: Then how did they end up coding such a steaming pile of crap twice? They must have at least been reading the comments in the VSS source code. –  Robert S Ciaccio Dec 10 '10 at 3:52
1  
@CraigTP: most develoopers have absolutely no need for the stuff in TFS. It's just noise that makes their job harder. If PM's and leads want all that functionality, they should separate from the software that a developer needs to use to be productive. –  Robert S Ciaccio Dec 21 '10 at 17:25

Back in the day I was saddled with SCCS under XENIX. VSS, in Visual Studio 6, for all it's failures and problems had distinct advantages. I still use it for small projects and I no longer use SCCS in any version.

share|improve this answer

I cannot figure out why everybody wants to badmouth VSS. VSS is not distributed, and distributed version control is

  1. better
  2. allows for non-distributed version control in practice

Please read this.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.