[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comparison between CVS and ClearCase
Re: Comparison between CVS and ClearCase
Wed, 3 Jan 2001 10:35:32 -0800
--- Forwarded mail from address@hidden
We are going to insert CM system to our company.
May be somebody can send me comparison between Rational ClearCase and CVS
--- End of forwarded message from address@hidden
I currently use CVS at home, and ClearCase at work; my position is
configuration manager. I work closely with ClearCase, and I'm pretty
familiar with it. I used to support several hundred users of CVS,
and as of CVS v1.11 I'm still listed in the credits as a contributor
to its sources.
I wrote this list several years ago, and updated it on Jan. 3, 2001.
Changing version control tools always exchanges one set of problems with
another. Although ClearCase is far superior to CVS in many ways, keep in
mind the following:
- It costs several thousand dollars per user to license.
- The number of supported platforms is fewer than CVS, however, they
include the most popular ones: Solariss, HP-UX, AIX, Windows (NT and
2000), some versions of Linux.
- It runs a large number of servers (some manage repositories, others
manage users' work spaces, and still others serve global resources).
They are quite resource intensive.
- In prior releases, when shared workspaces are deleted, processes that
manipulate them didn't fail; they hung and couldn't be killed. (Deleted
workspaces remained visible under certain circumstances, and must be
ignored.) However, the handling of these situations has improved over the
years and they're no longer an issue.
- ClearCase has one potentially serious scalability problem: Only one
writer per database is permitted at a time. This limits the practical
size of each repository and encourages layered build processes.
- Workspaces can be created in two ways: A working copy can be made in
a standard filesystem (like CVS), or the preferred method in which the
workspace is implemented as a new type of filesystem (requiring new
drivers to be installed in machine's kernel). The preferred method has
a higher overhead than NFS, even if both the workspace and repository
- Remote filesystem access is required between client and server machines.
Windows-only shops can use the filesharing mechanism supplied by Microsoft.
In mixed NT/Unix shops, an interoperative solution is needed; several NFS
clients are supported, as are some network file servers, and TAS from
Syntax Systems. Support for some versions of Samba is expected soon.
- ClearCase has a much larger command set than CVS, and therefore it has
a much higher learning curve. However, users can be productive using a
small subset of its capabilities and grow into it.
- It is possible to "disconnect" files from workspaces, where the files
are no longer visible but still use up resources. Recovery is possible
(and it might even be possible to automate it) but there is no published
- ClearCase' user model is quite different from CVS'. It uses the more
traditional checkout/checkin model.
- Commit-time checkin message templates are not possible without writing
lots of wrappers (or one huge one).
- There is no counterpart to the modules database.
But on the other hand:
- ClearCase versions directories.
- ClearCase treats binary files as first-class citizens.
- ClearCase handles all of the border cases related to branching properly.
(This feature and the one above make ClearCase worth adopting over CVS
regardless of the other features and drawbacks, IMHO.) ClearCase also
supports several branching models, including the sparse model that CVS
- In addition to branches and labels, ClearCase supports attributes of
versions and files/directories, and a way of relating file system
artifacts together. (This latter feature can be used, for example,
to remind an engineer to modify a header file if a corresponding
- ClearCase manages symbolic links, though they are not treated as first
class file system artifacts (i.e. they are not versioned and cannot
- ClearCase work spaces (using the preferred method) can be mounted via NFS
on unsupported platforms. Workspaces using the copy-out method can be
shared by any means available.
- ClearCase has the notion of a file "type" and allows refinement of the
handling of each type. Refinements include the basics, such as the way
revisions are stored in the repository, and the merge tools.
- ClearCase records merge history between versions, making automatic
selection of common ancestors during merges intelligent. In other words,
the results of old merges don't appear as conflicts later.
- There are many more opportunities to enforce a meaningful process than
simply pre- and post-checkin triggers.
- Users perceive greater productivity because workspaces are not
maintained by copying large amounts of data (when using the preferred
- ClearCase has quantity discounts that reduce the price faster than some
other commercial systems.
- Merge tools (text-based and graphical) are interactive by default.
- ClearCase' access control is both more flexible and more controllable at
a number of levels.
- ClearCase can audit the prerequisites of derived files automatically,
and offers more opportunities to share identical derived files (thus
reducing build time). However, under load, this feature is the one that
appears to cause the most repository corruptions. Many shops dedicate
special repositories to this specific function because the data stored in
them can be lost with relatively little cost.
- ClearCase provides a parallel, distributed Make (and it has a "pretty good"
Gnu Make compatibility mode).
- ClearCase can now support a user model closer to CVS, in that users are
permitted to check out versions that are not the latest on their branch.
Merging forward remains well supported.
- ClearCase has an (expensive) option to replicate repositories across
- ClearCase ships with an optional change management model that adds a layer
of abstraction over simple versioning. Changes to a project that span
multiple files and directories can be manipulated as a unit, bringing all of
ClearCase' more primitive capabilities to bear. This is a recent addition
to ClearCase; it's being tried by early adopters but it's not yet ready for
general use. It also works best with Rational's ClearQuest bug tracking
One of my biggest gripes about both ClearCase and CVS is that they don't
support long transactions. Their absence makes certain process features
difficult or impossible to implement well. For this reason, I also
recommend taking a close look at commercial products from SQL Software
If you're just starting out and you have the budget, by all means go the
commercial route. ClearCase is not without problems, but it gives me far
fewer problems in large programming efforts than CVS does. If you already
have a CVS repository, Rational supplies a conversion tool that is said to
be pretty good.
On the other hand, CVS is cheap and it prefers to work in many common
situations. You have source code, so you can potentially fix bugs in-house
faster than a technical support staff can. And the overhead in terms of
computing resources is much less than that of ClearCase.
The comp.software.eng newsgroup has a FAQ list that gives names of
products and companies, contact info, and URLs for a couple dozen source