Source Control: Anything But SourceSafe

I’ve used Clearcase, Perforce, CCC/Harvest, plus many rcs derivatives. I’d take Clearcase over anything I’ve used. I don’t really understand why so many people have trouble with it, though I admit the GUI tools are old and ugly. I have aliases for all the commands I use (on Linux and Solaris). I haven’t heard good things about Clearcase on Windows, but since I only use Windows to play games I couldn’t say for sure.

I would only use Clearcase with dynamic views, though. Perforce is better if you’re developing offline.

By the way, Clearcase isn’t a Rational product. It was originally developed by Atria. Then the ownership went

Atria - Pure (Pure Atria) - Rational - IBM.

They haven’t updated the GUI tools in a decade, and IBM doesn’t seem to want to do anything with it. I think they were mostly interested in Rose when they bought Rational, which is like throwing away the wheat and keeping the chaff.

On the plus side they’ve patched it enough that it works reliably with Redhat EL 4.

Like some other posters, I would like to warn people away from Borland StarTeam. It blows chunks in the worst possible way. I made the mistake of buying and using it a few years ago. It is possible, for example, to have two distinct files with the same name in the same folder! Crazy, yes, but StarTeam considers this a feature. Honest.

Stay away. Far far away.

Subversion, on the other hand is brilliant! Highly recommended.

I dont like systems where stubs in the filesystems keep track of things locally (CVS and Subversion) . They work ok for files but once you move a directory it creates havoc . You have to remember you cant do these dir moves in VS2005 - this is a real pain .

Surely a source control system should be simple so we can focus on design and coding ( which is hard enough) , if it requires you to read a manual its too much.

Regards,

Ben

I dont like systems where stubs in the filesystems keep track of things locally (CVS and Subversion). They work ok for files but once you move a directory it creates havoc. You have to remember you cant do these dir moves in VS2005 - this is a real pain.

I’m went from VSS - CVS - SVN and each step has been a major improvement in productivity AND happiness. But your quote does highlight what I consider the single greatest weakness I’ve had in subversion (which was also bad in VSS and CVS in the sense that getting history properly tracked was not even reasonably possible).

What I would like to see a subversion client add is the option to have the whole .svn/_svn set stored as a subdirectory off the top level directory only, so that when you tie a local folder to a repository location it adds just 1 folder for all managed client information … which would then allow you to use any and all OS and APP level tools to mess with your working copy and still have the accounting information be correct. Obviously, just like many types of merging, when you move a directory you are going to have to tell the SVN system before the commit … because how can it know if the 2 new “resources” folders added are copies of the existing one, moves, or new independent folders. But the way I would like to see it work is: Show the missing folders and new folders with status (like it does), and allow you to run a command to tell svn how the 2 are related before you commit (basically and after the fact svn move, or svn copy).

I’ve don’t think ANY offline source control system handles that case right anyway, but that’s no reason not to move subversion a step closer to perfection.

To the person who said “all systems have their own unique problems” … while that’s true, it is still true that the worst systems (VSS) are many times more problematic than the best systems (SVN, Perforce).

“If you are serious about the practice of software development, you should avoid SourceSafe”

I’m glad that your going to pay for our developers licensing for an integrated source control product. Where can I send the invoice so you can pay it for us?

Where can I send the invoice so you can pay it for us?

If you’re under budgetary constraints, you can download Subversion for free:

http://subversion.tigris.org/project_packages.html

Of course I won’t pay for the training your devs might need to “get their minds right”, but there are a lot of good resources out there on SVN.

I don’t think anyone has mentioned the issue of heterogeneous environments here regarding the “Team System vs. SVN” discussion. The company I work for is large and becoming larger, and is finding itself with a heterogeneous computing environment. Some Linux OS’es, some Oracle DB’s, but still mostly SQL Server and Windows. What happens when someone from the Linux/Oracle world wants to check in their code into the repository with Team System? Does TS have any cross-platform client tools that would allow a Linux user to check in code?

What happens even when someone on the Windows side wants to use source code control with something they don’t want to put in their Visual Studio solution? I guess they could use a command line, but I don’t know of anything quite as nice and generic as TortoiseSVN.

And by the way, we’re using SS with a database of 3-4GB. Sometimes I feel like a volcanologist on some small island in the South Pacific. All of the islanders’ point to their local witch-doctor who says the volcano will never erupt, even though my seismometer is taking some very interesting readings…

I’d like to point out that Perforce also has a special free license for open source developers.

http://www.perforce.com/perforce/price.html (under Educational licensing)

I thought that was pretty swell of them.

I’m glad that your going to pay for our developers licensing for an integrated source control product. Where can I send the invoice so you can pay it for us?

Don’t be a childish idiot.

If you polled the large corporates, one would hope that the results of the poll would be different. I noticed low Serena PVCS and IBM Clearcase and zero Computer Associates AllFusion Harvest Change Manager scores. I’m not sure who VSoft polled, but Clearcase and Harvest ( http://harvest-faq.com ) have their own build tools, so perhaps they weren’t targeted in the poll. Not saying these 3 are better than some of the free ones, but they would have to be better than VSS.

When one considers how prevalent Clearcase is, I’m amazed there aren’t more Clearcase hate stories. Don’t get me wrong here, I advocate Clearcase and administer this and the other Rational tools. Nobody likes change, and unfortunately some sites adopting clearcase get some person who has no understanding of CM who has just been to a Rational “UCM is the answer” course and then tries to go the full hog with the engineers off the bat.

Do they have problems? Yes, of course they do. Does the software you create have problems? yes, of course it does. This can be said regardless of the tool.

From what I have seen of perforce, I like, but I would miss the version tree and dynamic views in particular far too much. I also haven’t seen perforce reported as an enterprise level implementation, so I would be wary for enterprise level CM.

Regarding the administrative overhead, I’ve been through this. If you take a company where each project has their own implementation of the tool, or worse, a separate tool, they will say they have no admin overheads. Then you investigate and you find that some poor sode is doing some form of admin with the tool. The admin overheads are still there, they’re just hidden.

All of these tools are designed to help solve what can be an extremely complex problem. I have seen companies that allowed developers to copy, paste, add to source control for product variants and then find they have 12 completely different codebases for the same product with no hope of ever bringing it back together again.

As for SortaSafe, well I used it as a developer and kept getting defect regressions because someone else was overwriting my changes. I’ve also encountered a company that found that when S$afe went cacti, they found the backups hadn’t run for 3 months. They had one poor sod working for 6 months trying to manually reconstruct deltas and even then found that they couldn’t reproduce the code for some products. The result, a complete rewrite of the products concerned.

Reliability wise, well, if you’re forking out big bucks you deserve reliability. I have seen Clearcase continue operating without file corruption on hard disks that are dying - on the same stripe. I don’t see any Relational Database system handling this situation too well (including team system).

Do the UCM Guis suck? Yes. Does UCM make assumptions about all files being mergeable? Yes. Can you effectively use the tool if you’re aware of these things? Definitely.

I guess what I’m getting at, is that these tools can be like a gun - regardless of who makes them or the product. I can see a lot of damage being done long term if you used say the one SVN implementation for a company of say 30,000 people, for instance.

Some of the arguments shown here can be ridiculed, but shouldn’t. One thing I do know about all of these tools is that there has been very few technological advances that I have seen since Atria Released Clearcase and Clearcase Multisite. An exception would be SVNs approach to versioning, which I don’t agree with, but it was a good show of lateral thinking, I must say. A lot of the rest of it seems to be the same S*( in a different package IMHO.

One more thing, I would take using Winzip over Sourcesafe any day. At least when you go back your files are in the location they originally were in!

Also, regardless of the tool you will allways have the fanatics and the gripes and so forth. Evaluate and make up your own mind, but don’t just get a junior developer to do the implementation.

Well, you have to see that ClearCase do have a lot of different flavor, I worked on two different project with ClearCase BASE, with full-time competent admin, and it’s really wonderful, the admin tend to do a little bit too much for us, so I’m the only one writing my own config spec, but otherwhise, it’s really cool.
But between these two projects, I worked a few month with ClearCase UCM, with a, say, less competent admin…And this was the kind of bad experience I read here…
I don’t have any idea of the cost of the whole thing, but my huge firm seems to think that it’s well worth it, and I must admit it makes us work quicker and somehow with less stress…

At first I thought version control was overkill since at the time we were just 3 developers in the same room who didn’t even work on the same projects. But the lack of version control was the reason we didn’t work on the same project.

We started with CVS which in the Windows environment is rather crappy. At one point we added a new developer in a remote office who needed to access the repository on our file server. The update process basically ran all night. This was more a network problem than a CVS issue but never the less painful.

We switched to Subversion and it took minutes to update thru a WAN. The lightier bandwidth requirements is its best feature. We currently are planning on connect 3 remote offices together and using CruiseControl.NET to support automated builds and testing.

Its true that every system has its warts and subversion has a few. (How come you can edited a tagged version? Why come files produced by svn:externals cannot be setup to be readonly? How come log commands on the trunk don’t report edits to branch version when you currently are switched to a branch?) I think I understand why these are hard issues to fix. Or at least consistent with the design.

IMHO, the most annoying issues are ones where there are obvious problems but the product is not being actively developed so there is not hope to ever see it fixed.

BTW, I think Jack’s defense of ClearCase was admirable but I wouldn’t recommend any system that requires an administrator. If you hate the system good luck getting rid of it. Most likely you will have an administrator tell you its great even though your experience tells you differently. I haven’t used ClearCase before but it the same with Lotus Notes or VSS or any big system (subversion is a small system)

Fair Call steve. Of course, for the sized projects I work on I wouldn’t choose a CM system that doesnt’ require an administrator (if that makes sense). I have seen a lot of small scale implementations that have been stuff3ed up because there is no co-ordination or management of the changes. In fact I have seen one company that had to redevelop a product line because their codebase was in such a mess.

Did I see someone up there mention Microsoft TFS as modern? :slight_smile: In that case, Clearcase is modern, too. :wink: I believe TFS is nothing more than something similar to Perforce under the covers. The only quote unquote, modern, source control tool I’ve looked at was Accurev and it did just win its second Jolt Award. Most source control will do if you don’t have to worry about process, parallel development, branching off the mainline so to speak, managing an offshore team or collaborating on shared projects. But please don’t try to use a free or RCS-based tool for these more complex problems (like using swiss cheese to hammer in a nail).

I’ve been using SS for a while, but not because I wanted to, I had to. And I must say it freaking stinks! When I get the chance I’m switching to SVN, which I’ve also used and it worked great. Every time I’m forced to use SS I feel violated, so take the advice - run away from it.

Michael Bolton’s article, “Visual SourceSafe Version Control: Unsafe at any Speed?” has moved to “http://www.developsense.com/testing/VSSDefects.html”. The link given in the original post is no longer valid.

Google uses Perforce. http://versioncontrolblog.com/2006/12/03/perforce-as-the-version-control-system-at-google/

Don’t know what all the fuss is about. Any seasoned coder gave up VSS, CVS, etc. years ago. One corruption is enough. Most switched to ZIP, touch and diff - what do you need all this other stuff for? Arse biting rubbish, all of it. Period!

And as for branching/merging - give me a break PLEASE! That’s not source control, just mental masturbation pretending to be management. Never necessary (convenient as a sop to someone else’s woolly headed thinking maybe). Start this silly game and source code control becomes design out of control instantly.

“And as for branching/merging - give me a break PLEASE!.. never necessary…”

Wow. It’s obvious you have no experience with managing/patching production releases while continuing development. I’m glad for you, but honestly I fear you have nothing to contribute to this discussion.

And now to discredit myself. I’ve been using VSS for six years. Other than some quirkiness with getting project structures in place (basically bypassing the Visual Studio “integrated” approach), I’ve had no issue with it. Never had a corruption, never lost source code, and have had excellent experience with branching. Now, merging on the other hand is just weird and clunky, but doable. We have our automated build set up through CruiseControl and MSBuild and honestly, it runs really well. We have five developers who are fine with a checkout/edit/checkin approach, can easily identify what checkin caused build failure, and to be honest, I think most people coming in off the street would pick up on the simple paradigm quickly. While it may not be the most seamless development environment, the costs (having to wait .5 seconds for a file to be checked out) is pretty minimal considering the ease of use for the whole team.

Reading all of this convinces me that it could be better, but with a solution that I can’t really complain about, I’ll hold off until we lose everything for the first time.

Suggestion requested for a difficult need!

I work for a government division, IT will not allow any program that they don’t pay $$$$ for (mentality is free = trash). That said, I can rightfully install anything I want that doesn’t require administrative access (read that as windows wise I am a debugger and power user, but not a local administrator). I spent a whole day configuring and beating up WinCVS (old versions down’t need administrator), WinCVS + Igloo, (CVSNT on the server side) etc. and at this point am frustrated. I need a client that integrates nicely with Visual Studio (the IDE I am obligated to), and works with a decent backend system (I am the admin of the server so I can install whatever I want). I’ve always been very disapointed with all the options out there since I started coding… integration wise VSS is the least worst, but it’s a pretty d4mn buggy program. Anybody have any clear good suggestions for both client and server in this scenerio?