ClearCase -- An Overview


composed by Francis Chan


Introduction

ClearCase, by Atria Software, is a software configuration management (SCM) product for both the UNIX and Windows NT development environments. It provides, in a transparent, non-intrusive way, a comprehensive configuration management which includes version control, workspace management, build management and process control which allows users to to use the same tools and remain in existing environments.

ClearCase is targeted at the needs of software teams working on multiple versions of software and platforms across client/server networks. It enhances the development and maintenance of multiple concurrent products, thus improving the accuracy of releases, rebuilding and patching of previously shipped products.


Version Control

A version control system must be capable of managing the evolution of components along multiple and simultaneous paths. The system should also minimize the expense and complexity of creating and developing new versions to encourage experimentation.

ClearCase keeps track of all the changes to files, directories in secure, distributed repositories and supports parallel development by enabling easy branching and merging. It provides version control of not only source code, but also binaries, executables, documentation, test suites, libraries, etc.. Its capabilities exceed that of traditional source control and include:



Version tree view
Versions of directories record how the organization of the source base evolves: renaming of source files, creation of new source file, and so on.


Workspace Management

Rule-based environment management

ClearCase provides each developer with multiple consistent, flexible, and reproducible workspaces. It uses Views (similar to the views concept in databases) to present the appropriate versions of each file and directory for the specific task at hand. Views are defined by configuration specs consisting of a few general rules. Rules may may be as simple as "the versions that were used in the last release" or can be more complex when particular sets of bugfixes and features need to be combined. Views are dynamic -- they are continually updated by re-evaluating the rules that define it. Newly created versions can thus be incorporated into a view automatically and instantly. Views allow team members to strike a balance between shared work and isolation from destabilizing changes.



File browser view

Transparency

Each versioned object appears to be an ordinary file or directory. No special command is required to access individual versions. A view automatically accesses individual versions by working with the Multiversion File System (MFS), ClearCase's NFS-compatible virtual file system extension, of which object-oriented repositories are mounted on. This transparency feature makes ClearCase compatible with the Unix open-systems environment. Developers can continue to use their existing tools -- shells, editors, compilers, debuggers, and so on, without modifications. Even Unix commands operate on the versions of files appropriate to a process' designated configuration through standard Unix I/O.


Build Management

Make-compatible software building

Since software build procedures are usually described in standard Unix makefiles, ClearCase allows developers to use any build tools, including make, PVCS, NMake, etc. to build software from ClearCase-maintained sources.

Automatic detection of source dependencies

clearmake, ClearCase's make-compatible system builder, automatically detects the source dependencies of build targets, so developers need not explicitly declare such dependencies in their makefiles.

Configuration auditing

When clearmake runs compilers and other tools, it automatically produces configuration records, which provide complete "bill-of-materials" documentation of software builds. Each configuration record includes a listing of all source file versions that were used, versions of build tools, and all build options that were specified. The capturing and recording of component details, auditing at the file-system level, in a software build ensures complete rebuildability and maintainability. There are also special commands which compare configuration records, showing the differences between two builds of the same program.

Guaranteed rebuildability

A view's configuration spec can be defined in terms of the configuration records produced by previous builds. The exact source base for an individual program or an entire release can be recreated instantly in a new view, thus guaranteeing rebuildability of software systems.

Binary sharing

Whenever possible, clearmake shares the derived objects produced by builds among users across the network and project boundaries. This enables software developers to share binaries automatically and correctly in order to minimize re-builds and unnecessary copies, thereby improving build accuracy and speed, as well as reducing disk storage needs.

Parallel development utilities

ClearCase includes a graphical multi-file text-comparison utility and a similar text-merge utility.



ClearCase diff tool

Parallel, distributed building

In a build that involves execution of multiple makefile build scripts, those scripts can be executed in parallel, either on a single host or on a group of hosts in the local area network. ClearCase also performs network and compute-resource load-balancing.


Process Control

In addition to providing tools that control sources and derived objects, ClearCase provides tools for monitoring and controlling the development process itself. It supplies a flexible, powerful "toolset" which administrators can use to automate the enforcement of an organization's existing policies.

Attributes

An attribute is a name=value pair which can be attached to most kinds of objects. The types of these values include integers, strings, dates, etc.. Query commands can thus be constructed to allow users to find all versions annotated with a specific attribute.

Project-wide queries can also be made on meta-data which relieves the restriction of scope of the single configuration that a user is working in.

Hyperlinks

A hyperlink is a logical "arrow" that connects two objects. For example, a hyperlink can connect a design document to a source code module. Hyperlinks can relate whole elements, specific versions (as needed for requirements tracing), or sub-sections within objects.

Triggers

A pre-event trigger monitors the usage of a specified ClearCase operation or class of operations. For example, a pre-event trigger can require that some check be applied before the checkin command is allowed to run. It can allow the command to proceed, or it can cancel the command.

A post-event trigger runs after a specified operation completes. Typically, such a trigger notifies one or more users that a command was executed, or attaches an attribute to an object. For example, a post-event trigger might send mail to the QA department when a modified file is checked in along with information or comments that the user supplied during checkin.


Distributed Data Storage

Source data is stored in mountable file systems, called Versioned Object Bases (VOBs). VOBs can be physically located throughout the local area network, and mounted on various workstations and server machines. Furthermore, the data storage for an individual VOB can be distributed across the network, even to hosts that are not running ClearCase software.


ClearCase VOB view


Hardware Platforms


Operating Systems


Other Products


Back to Index


Modified: March 27, 1996
Feedback: ( fchan@ic.eecs.berkeley.edu)