info-cvs
[Top][All Lists]
Advanced

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

Re: Help!!!


From: Paul Sander
Subject: Re: Help!!!
Date: Mon, 8 Jul 2002 11:00:33 -0700

--- Forwarded mail from address@hidden

>   I've been using CVS for quite some time but still not very
>much confident using it. I've been working on both Solaris/Linux
>and Windows platform. Please let me know :-

>1) where I can find good resources on Configuration Management
>in general, and CVS in particular.

There's a book about applying CVS to configuration management.  I don't
remember the name, but "CVS" is in the title.  I believe Karl Fogel is
one of the authors.  There are also a number of other books, including
one written by Rational about ClearCase.

>2) any site dealing particularly with job openings in
>Configuration Management.

Look at ABS Consulting and Parrus Technologies.  They're consulting firms.
I've also had good luck recently with hotjobs.com.

>3) difference between CVS and ClearCase; and which one is
>better?

See below.  In my opinion, ClearCase wins hands-down, but it's expensive.

>4) where I can find good resources on ClearCase. I am very much
>keen in learning ClearCase. From where can I get Trial
>Software/Study material?

There's the book I mentioned above.  Rational also offers free month-long
trials and at least two price points.  See www.rational.com for more
info.  Also try registering on Rational Developer's Network at
www.rational.net.

--- End of forwarded message from address@hidden

I currently use CVS at home, and ClearCase at work; my position is
principal software engineer, specializing in software configuration
management.  I have 5 years' experience using and administering ClearCase,
currently supporting nearly 100 users.  I have 11 years' experience using and
administering CVS, having supported several hundred users; 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 last updated it on May 30, 2002.
At this time, the current release of CVS is v1.11.2, and the current release
of ClearCase is v2002.

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:  Solaris, HP-UX, AIX, Windows (NT and
  2000), some versions of Linux.  It also supports some less popular
  platforms, such as Unixware.  (Note that Linux still requires careful
  configuration of particular versions of the kernel.  People who are not
  expert Linux admins seem to have trouble getting them to work together.)
- It runs a large number of server processes (some manage repositories,
  others manage users' work spaces, and still others serve global resources).
  They are quite resource intensive, requiring an efficient and reliable
  network as well as significant disk, memory, and CPU resources.
- 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.  Recent
  changes to the ClearCase lock manager have improved read-only throughput
  significantly.
- 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 the 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.  Some versions of Samba are supported on some operating
  systems, but it requires careful tuning of both Samba and the kernel.
- ClearCase has a much larger feature 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.  Administrators must
  have some in-depth knowledge; I recommend taking a week of training before
  deploying a significant process.  New shops are strongly advised to
  develop some simple helpers and wrappers to enforce certain basic
  disciplines (e.g. ordinary users can't remove a database element) before
  deployment.
- 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.  However, ClearCase will seem more
  familiar if users are used to using "cvs edit".
- 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.
- ClearCase does not perform well over a wide area network, but there are
  success stories of people using it in combination with a virtual private
  network.  Creating workspaces using the copy-out method seems to be the
  more successful approach, but this configuration is not supported by
  Rational.

But on the other hand:
- ClearCase versions directories.  (This can lead to the "evil twin"
  condition, in which distinct files having the same location in the
  filesystem exist on different branches.  This problem is well-understood,
  and the user community has provided numerous methods to detect and prevent
  it.)
- 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
  powerful 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 in its fourth minor release, and is
  gaining in popularity.  Although it is improving, I personally consider it
  to lack a critical feature:  Implementing a process that enforces all
  merges onto integration branches to be trivial (copy) merges can only be
  done in a way that involves a high overhead.  It also works best with
  Rational's ClearQuest bug tracking system.
- ClearCase lends itself better to process automation than CVS does.
  CVS' exit codes are unpredictable:  Although they are always zero upon
  success, they can sometimes be zero in the presence of failures, and the
  specific values are related in a complicated way to the number of files
  experiencing problems.  ClearCase' exit codes are predictable.

Another personal observation is that ClearCase is easier to administer
than CVS.  My experience with ClearCase is that, once installed on a reliable
server and network, it just runs.  ClearCase is very good about recovering
from user errors, whereas CVS sometimes is not.  Corruptions of ClearCase
databases are rare (I've experienced just two, and both were recoverable
without the use of backups) and users must work to corrupt their workspaces.
ClearCase databases are in a proprietary format that discourages users from
mucking with them.  CVS, on the other hand, stores everything in familiar
ways, sometimes leading users to believe that they can modify things without
the benefit of CVS and thus causing problems.  CVS also allows users to create
workspaces inside the repository, which results in interesting artifacts.
Most of my time spent administering CVS has been in cleaning up these types
of errors.  That overhead is (for me) much higher than babysitting ClearCase.

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 (although source code does not
offset poor design).  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]