What can ClearCase do that the freeware CyclicCvs can't? Is it better or worse than the latest version of SourceSafe?
Instead of having a copy of a snapshot of an image, I can tell ClearCase: This directory here is where I keep my source; I want to look at the "xxx" snapshot of the source. As people check changes into the snapshot, my view of the source changes (it's a little more controlled than that). In other words, it's almost nearly just about as good as <the really cool source control system many Smalltalk projects use>. -- PaulChisholm
ClearCase really shines in handling parallel development of many mutually dependent applications or parallel tasks within a project. In CyclicCvs and all other "workspace" oriented change management systems (PVCS, SourceSafe, CyclicCvs, SubVersion, RCS)... one is never sure that the stuff you have checked out and are linked to are the current/latest/correct version of other software or (later) what you built things with. Hence integration and test issues due to variation grow exponentially once the number of interacting developers exceeds some limit (maybe 100? for functionally designed C systems and informal development methodologies?)
I've used CyclicCvs in one commercial development that involved > 100 developers working on various interdependent projects, with no integration or test issues that I can trace back to CyclicCvs. CyclicCvs has been used in the freeware world to support the development of linux, which involves many thousands of simultaneous interdependent developers, and is used by Netscape to control the source-free development of Mozilla too - see http://www.mozilla.com . The largest CyclicCvs installation I've heard of on the CyclicCvs mailing list is a US military project that involves more than 25,000 source files - 2 gig of source. That project actually dumped ClearCase for CyclicCvs for performance reasons. So I'm highly skeptical that there's some lurking exponentiating integration/test issues.
The way you make certain you have the current/latest/correct version under CyclicCvs is by applying tags to modules - where a module is any regex-defined subset of your source repository. Unlike PVCS and RCS, CyclicCvs allows you to do this in an orderly, project-oriented fashion. CyclicCvs also supports a merging rather than a locking strategy to enable parallel development work.
I actually see the workspace business as a considerable advantage over clearcase; with CyclicCvs you're dealing with ordinary files in an ordinary directory, no network lag to worry about. This also gives you the freedom to distribute you development more widely and easily than ClearCase - CyclicCvs uses ordinary old TCP to connect its clients and servers. And you can secure those connections using ssh.
Most of these comments go for the latest SourceSafe too. It's really not sensible to compare SourceSafe or CyclicCvs with the old file-locking RCS/PVCS/SCCS stuff. -- PeterMerel
I very happily dumped an old CVS for ClearCase a few years back due to exactly the problems mentioned. A later version of it such as CyclicCvs would have been better: the features you mention were not in the CVS version installed at my site. (Did someone set out to create an affordable ClearCase?)
The history of CVS is long and chequered. Most folk who tried it tried 1.3, a buggy version that for some reason sat around in the GNU archives for several years. The biggest changes occurred around version 1.6. I think it's up to 1.9b29 at the moment. As to influences, it may be that clearcase influenced CVS, or vice versa, or a bit of both - who knows?
If you have enough computons, ClearCase still sounds better to me but it would require significant experience with well supported installations of both to tell.
Agreed that it's difficult to say. I've never used ClearCase in anger, so wouldn't venture an opinion about "better".
ClearCase now offers the choice of checking out all files, at least on NT, exactly to avoid net lag and allow remote development. As with EmacsVsVi, which you prefer if both are safe is moot. -- MarkSwanson
Well, there's still the fact that CyclicCvs is free ...
OO design, Interface centered architectures, good development styles, etc all help. But the advantages of ClearCase are orthogonal and additional to what you can get from them. It provides clean, automatic management of a whole range of such nitpicky development process management issues. Certain common bug types [AnswerMe: Such as?] simply disappear. It is a much more pleasant environment, especially for the technical leads who otherwise end up sorting out the nasty integration problems, often tracking them down to some poor developer who didn't feel like refreshing his workspace sources and rebuilding one more time... If you want to, you can automatically inspect for your CodingStandard, et al by triggering an inspection script when the developer tries to commit a new version.
CyclicCvs also gives you the ability to automatically trigger scripts on checkin, checkout, and just about any other time. As to developers who "didn't feel like refreshing his workspace", such developers are unable to check their sources in, and consequently get them included in releases, so this integration problem can never occur - it's fictitious.
What you do generally want to do with CyclicCvs is keep ready-built copies of your environment and libraries for all your stable releases, so developers don't need to rebuild everything whenever they checkout/update their workspace. Happily CyclicCvs can automatically trigger scripts to do this when the technical lead tags his project as stable. No muss, no fuss.
Again, most of these comments go for SourceSafe 5 too. -- PeterMerel
Speaking strictly in terms of functionality, CVS and especially SourceSafe simply aren't in the same league with ClearCase (not even close - honest; don't worry - Ill get to disadvantages in a moment). SourceSafe is barely even comparable to CVS. It has a nice GUI and good integration with MS Visual environments. But that's about the long and short of it. It has a pretty face, but lacks industrial strength SCM functionality and reliability (which is the overwhelming conclusion by many of its users on the dozen or so SCM-related mailing lists I inhabit). The database is consistently unreliable (so says MS as well as the users). It lacks "serious" SCM functionality for things like parallel development and change ancestry ("pinning" doesn't scale after only 1-2 levels, and VSS' so called branching only goes to 2 levels, and doesn't remember merge ancestry).
Some of the plethora of features that ClearCase has that outstrip CVS ... it has triggers for far, *far* more things than CVS has them for. It versions directories as well as files (although CVS is almost there on this one). It has rich metadata for linking and tagging repository elements. So not only can I use labels and branches, and not only do branches have nice mnemonic hierarchical names, but I can attach attributes and/or hyperlinks to any file, version, or metadata-type, even across repositories (with hyperlinks).
However, if you have the bucks, and the dedicated personnel, and the network resources, and the intermediate-advanced knowledge of how to do SCM in your shop, you would be extremely hard pressed to find any system, research or commercial, that has greater functionality and flexibility than ClearCase. For each feature Ive mentioned thus far, there are probably 2-3 I've neglected.
But all of that costs a *lot* in terms of time and money and people and resources and knowledge. truth be told, a lot of shops not only don't need that much "tool", they don't have the capability to use it effectively.
In the range of respectably low priced commercial tools with high functionality, Perforce (http://www.perforce.com/) and Razor (http://www.visible.com/) typically get the highest marks for best combination of nice interface, low price, high functionality, and good performance/integration. Perforce (p4) is stronger on version control and speed, and Razor is stronger on problem-tracking and GUI.
Continuus (http://www.continuus.com/) is the main contender for folks reaching for ClearCase-levels of power & functionality (and cost). PVCS Dimensions (formerly PCMS from SQL software) also comes close to being in this tier.
Other popular contenders in the middle-tier, where Razor and Perforce shine brightest, are StarBase?, MKS SourceIntegrity?/TrackIntegrity?, PVCS, and a few others Ive forgotten (probably TrueSoft's TrueChange? too).
In the freeware arena, the most well-known and well-liked is CVS. But there's also AeGis, PRCS (which is fairly new), QVCS, TCCS, RCS, SCCS (the GNU version), and some research systems. There's also the stuff TheMozillaProject is using that is CVS-based (derived from what the OpenBSD folks used).
There is also the promising commercial tool BitKeeper which caused a lot of controversy when Linus Torvalds chose it as his repository for the Linux kernel.
[Comments on AlienBrain moved to that page.]
Rational http://www.Rational.COM/
TheMozillaProject uses regular CyclicCvs, with a bunch of homegrown tools to go with it (BugZilla and others), as far as I know. -- PierrePhaneuf
For freeware build tools, Jam is probably one of the nicer ones (freely available from Perforce's website, but its not Make-compatible, its a whole new language). There is also Odin, and Cons (both which are also incompatible with Make-syntax). But if you really must have the old dinosaur Make syntax, GNU make is among the best (freeware or otherwise). The tool clearmake comes with ClearCase, and Continuus has an "object-oriented" Omake. Then there are some build-tool vendors, like OpenMake (from Catalyst systems) and Qref (I think its from QumaSoft?). Kevin Jameson also has some good papers and scripts at was website (http://www.realcase.com/).
For those that can neither afford nor utilize the full power and fury of ClearCase, or even Continuus; my recommendations would be Razor for great problem tracking and GUI but lighter on version-control; Perforce, for speed and portability, and strong VC, but lighter on the problem-tracking; and for those on a budget or who don't quite need all that even Razor or Perforce can offer, definitely look at CyclicCvs with either GNATS (and one of its GUI front-ends) or JitterBug as the corresponding tracking system. Oft-times CVS will do the job well enough that the added "extras" of Perforce of Razor by not buy you enough extra pizzas for your needs.
But if you really need that full flexibility and power and have the budget and administrative personnel, none of the above recommendations even begin to approach ClearCase in what they have to offer (much less Continuus or PVCS Dimensions, though Perforce and Razor come respectably close in some areas and cost way less). Just make sure you don't make the mistake of buying a Ferrari when all you really needed was Yugo or a Ford (and if you do get the Ferrari, you better have a clue about how to drive something like that or you'll be in deep trouble very fast). -- BradAppleton
To say that ClearCase is the Ferrari of the SCM world must be a joke. It's a huge, complicated system that is normally totally incomprehensible for it's end users. The idea of making the CM system act as the fileserver also leads to a completely horrible performance. It is not uncommon that the build time increases with a magnitude when you switch to ClearCase. I could live with all of this if it wasn't for the inflexibility of the system. Either you do it the ClearCase way or you don't do it at all. CVS on the other hand doesn't claim to solve all you problems, but gives you most of the functionality you need in order to get the project going. I would say that the (successful) large companies which uses ClearCase would be better of looking for alternatives.
I've used both, CVS for 5 years, and ClearCase for 3 years, and while ClearCase has more power than cvs in the ways describe above, I've never had an ls operation in cvs take over 2 minutes, with ClearCase I have.
I have never had an ls operation take over 2 minutes in Clearcase either except where there was an obvious NFS problem that would make ls take over 2 minutes on non Clearcase NSF mount points too! IOW it was not a Clearcase problem rather a network problem - Andrew@DeFaria?.com
With cvs an import of 8000 files takes time measured in minutes, with ClearCase, hours. I've seen larger ClearCase imports take 5 days. With cvs, if there is a bug that annoys me no end, like, say, returning an error on a close of a view private file in a locked view, because it can't update the last accessed time, I can just fix it. With ClearCase, well, that bug still exists, and software that checks to see if close failed report errors.
Sounds like your network had more problems with it than can be attributed solely to Clearcase. I'm not sure what you are talking about WRT an error on closing a view private file in a locked view. There is no lockview command! Andrew@DeFaria?.com
Also, it doesn't scale. I am told that vobs should have no more than 3000 elements in them. We had a slightly larger vob than this, and they went to split it, and they started running the split. I calculated the time to completion, and when I told them it would take 400+ days, they aborted it, and said sorry, you loose, they threw out the old vob, started a new one, and life went on. In the mean time, no more longer term history on files, no merging across the new/old boundary, a fundamental waste. So yes, as long as you have a toy project and never need to scale, ClearCase is fine. I can't imagine that CVS would handle a hundred million files any worse than 20 files.
As a Clearcase admin in some shops with hundreds of vobs, thousands of views and hundreds of thousands of elements I would disagree. Sounds to me like you just didn't know what you were doing WRT Clearcase. Andrew@DeFaria?.com
How can you say that when there are companies like HP, Motorola, or Informix each with thousands of licenses using ClearCase for everything? Are you saying these companies never create anything internally that grows? Or are they just toy projects?
I'm afraid he's being perfectly reasonable. Clearcase has a number of design flaws which basically mandate an extraordinary amount of administrators (10:1) to keep the thing up and running. By all accounts, it's great to work with if you can throw money and people at it until it's happy. Said companies above have, and probably do. -- WillSargent.
Hmmm... I was 1 admin for 85-120 engineers without much problems. YMMV. Andrew@DeFaria?.com
I work for one of the companies mentioned above as having a "huge number of licenses" of Clearcase. The admin overhead is high for a small team, but economies of scale soon take over and the ratio drops rapidly the bigger your commitment is. An _average_ project around here is ~1Gb, a large one up to 10. The biggest I have seen had 300 developers in 17 international sites. Certainly not toy projects. -- CrawfordCurrie
My own experience is with Continuus (C/CM) and CVS. Continuus is much as ClearCase is described here: a slow resource hog. The documentation was pretty much abysmal and the GUI painfully slow;I taught myself the command-line version as it had a halfway decent 'help' option, and could be scripted - pretty soon I had it tied back into Emacs and was working away as before. The windows developers suffered with the GUI client, which meant more+longer coffee breaks. NB - they never installed the DevStudio? C/CM integration, which would have probably made everybodies life easier. C/CM managed to totally screw up a couple of times leaving us with odd copies off the project we could never get rid of. My advice: if you grok it, stick to CVS. It works. -- BrianEwins PS This page could do with being cut down! I'm glad you volunteered.
...a disaster in comparison to EnvyDeveloper.
I don't honestly think you can compare the two. One is part of an IDE and works well only with Java (or Smalltalk), while the other is an enterprise version version control system that works as well for source code (of any language) as it does for postscript documents, image files, or spreadsheets. Furthermore, it is not tied to an IDE. VisualAge really kicks ass for what it is. But have you tried using EnvyDeveloper outside of VisualAge or for a large geographically distributed team needing to track many source files other than Java or Smalltalk and on different platforms (needing different translations of linefeeds and such)?
Personally, as a general SCM solution (not just some developers in a room) I've been much happier with ClearCase than most anything else I've ever used, especially for multiplatform development controlling multiple file types. And any time I talk to an SCM expert (someone whose business is only SCM), they seem to unanimously swear by ClearCase. FWIW, as a developer, using it should be transparent once you set up your IDE to support it. For example, there is a transparent interface for Microsoft Developer Studio. JBuilder also has support for ClearCase that works well. Personally, I have a really hard time doing without the private branches, automatic refreshing, timestamped views, and so on that ClearCase provides. I'm not saying anything is wrong with EnvyDeveloper, it is great for what it is meant to be great for. Really great. In fact, it even has some great performance for being written in that language that is such "a pig and a dog." :) BTW, I've never used CVS in any production environment so I can't say how CVS or CyclicCvs compare to ClearCase. -- RobertDiFalco
ClearCase does not have a MacOS client. I know someone who has tried to work around that limitation (using WindowsNt client), and suffered a great deal.
ClearCase 5 has a WebClient? to reach more users, including Macs; most web browsers with Java support can deliver snapshot views (albeit slow) and accept updates. Rational even implemented a merge tool using frames. Beyond that, this interface is still in its infancy. If you are multi-platform, perforce is a better choice.
From ClearCase
My experience is limited to PVCS Pro, CVS, RCS, SourceSafe, SCCS, Continuus (not Synergy) and ClearCase. Each presented its own problems and shown in certain areas, as is noted above. In the pure Developer Shop where Corporate (legal) responsibilities are not very important, then CVS was the king. Nothing was easier for the Development teams to use and generate products.
When I am SCM for projects with lots of files across parallel development on short schedules plus I may have to testify in court to prove our reproducibility to ensure payment, then I use ClearCase!
Sure, the I/O requirements slow down almost everything you do, and the configuration records are pretty tough to make usable. The Administration requirements mean a "real" SCM Engineer is needed, plus a few more folks if the project gets beyond 50 content creators, then the three things that ClearCase does well, in my experience, become more important then the downsides.
) ClearCase has an almost complete history of what has happened to my vob in their Dynamic Views, even to the point of Configuration Records created during builds. Sorry, I have had content creators who've replaced files from their home storage, rebuilt, and reloaded to my repository in the other SCM tools. I wasn't able to ferret that failure out easily, but with ClearCase I do.
) Dynamic views mean I don't have to download everything to build, edit, re-build, or almost anything, just read it across the network. When my complete builds exceeded 26 hours (yeah, that's way too big, I know, but I'm not the Software Architect or Build Designer) and created more than 19 GB of executables and libraries, well those dynamic views saved a bunch of disk space and time, especially with the 'wink-in' capability.
) Dynamic views mean that multiple developers, testers and others can use the same disk space to do their testing through symbolic links, although not performance testing obviously ;-).
) A nicety for Continuus and ClearCase is true Directory Versioning, which makes reproducing old releases much simpler. I'm told SubVersion does this well also.
To summarize strictly my experience; Use CVS instead of ClearCase if you are in a smaller, almost pure development environment, few parallel branches, and your customers are likely to pay without legal battles. If you need any of the ClearCase advantages I've noted above, or won't meet all of the situation noted in the previous sentence, then find the cash for good SCM engineers and at least as strong a tool as ClearCase.
Clint Schaeffer neclint@yahoo.com