info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Comparison between CVS and ClearCase


From: Paul Sander
Subject: Re: Comparison between CVS and ClearCase
Date: 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
(with WinCvs).

--- 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
  reside locally.
- 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
  procedure.
- 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
  supplies.
- 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
  implementation changes.)
- ClearCase manages symbolic links, though they are not treated as first
  class file system artifacts (i.e. they are not versioned and cannot
  have attributes).
- 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
  method).
- 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
  multiple sites.
- 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
  system.

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
and Continuus.

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
control tools.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]