[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
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
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
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
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
--- 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
- 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
- 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
- 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. 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
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
- 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
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
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.
- Help!!!, Manish Koolwal, 2002/07/08
- Re: Help!!!, Noel Yap, 2002/07/08
- Re: Help!!!,
Paul Sander <=