Objectives:
To make the participants proficient in Essentials of Rational Clear Case
Course duration:
2 days
Course outline:
Day 1
Module 0: About This Course
Overview: Orient students to the training facility, introduce course content and logistics,
and provide a list of resources.
Module 1: Getting Started
Goal: Set up a ClearCase workspace, which includes creating a view, starting a view,
and mounting a VOB.
Overview: This module introduces the typical developer workflow, which serves as the
organizing principle for Day one content. The module teaches students how to set up a
ClearCase workspace, which includes creating a dynamic view, starting a view, and
mounting a VOB. Finally, it discusses how to access ClearCase Help.
Exercises: Tool-based exercise at end of module to create and start view, and to mount
a VOB.
Module 2: Working with Files Under Source Control
Goal: To checkout/checkin files, and to teach them what it means to develop in
parallel with other team members (branching).
Overview: This module teaches students to work with files under source control in
ClearCase. It focuses on working with ClearCase in a parallel development
environment. It discusses the checkout/checkin paradigm, reserved and unreserved
checkouts, branching, version-extended pathnames, and the –mkbranch rule.
Exercises: Tool-based exercise at the end of module to edit a config spec to create
private branches, check out, edit, and check in files. Also create a view-private file that
they will add to source control in a later lab.
Module 3: Merging to and from the Integration Workspace
Goal: To merge their work to and from the integration (project) workspace.
Overview: This module explains how ClearCase merges element versions. It discusses
the ClearCase merge algebra and the different types of ClearCase merges. The
module shows merges using the Version Tree Browser and the Merge Manager. It
introduces the Diff Merge tool.
Exercises: Tool-based exercise at the end of the module to merge using the Version
Tree Browser and the Merge Manager; use the Diff Merge tool to resolve merge
conflicts.
Module 4: Working with Elements and Views
Goal: To perform a range of less-common developer tasks related to elements and
views.
Overview: This module is a collection of tasks that do not fit in the common developer
workflow, but yet are tasks developers will need to execute occasionally. It discusses
tasks related to elements including adding files to source control, comparing element
versions, renaming and moving elements, and viewing element histories. It discusses
tasks related to views including finding checkouts, canceling checkouts, using versionextended
pathnames, and removing views.
Exercises: Tool-based exercise at end of module that completes a number of tasks.
Module 5: Working with Snapshot Views
Goal: To work in snapshot views connected and disconnected from the network.
Overview: This module discusses creating and working in a snapshot view. Its main
workflow assumes disconnected work. It points out the differences between dynamic
and snapshot views. It discusses the tasks unique to working in snapshot views including
creating load rules, updating a view, and hijacking files.
Exercises: Tool-based exercise at end of module to create and work in a snapshot view.
Day 2
Module 6: Configuring Workspaces
Goal: How config specs work and how to write them.
Overview: This module discusses how config specs select element versions. It explains
config spec rules syntax. It discusses techniques to automate config specs including the
include rule and setcs.
Exercises: Paper-based exercises within the module on writing config spec rules and
config specs. Tool-based exercise at the end of the module on editing a config spec.
Module 7: Integrating Parallel Development
Goal: About commonly used branch types and how to perform advanced merges.
Overview: This module discusses branching as a technique to manage parallel
development. It covers commonly used branch types. It explains how multiple level –
mkbranch rules in the config spec can create cascading branches and thus
consistently implement a project's branching strategy. It discusses subtractive and
selective merges, and ends with a discussion of comparing/merging non-ClearCase
files.
Exercises: Paper-based exercise in the module to write a config spec to create
cascading branches. Tool-based exercise at the end of the module to view branch
types, perform a selective merge, and compare/merge non-ClearCase files.
Module 8: Applying ClearCase Metadata
Goal: To apply various ClearCase metadata.
Overview: This module teaches students about ClearCase metadata. It discusses the
different kinds of metadata, and provides examples of when it is appropriate to use
each. The module teaches students to apply label, attribute, and hyperlink instances.
Exercises: Tool-based exercise at the end of the module to apply a label, an attribute,
and a hyperlink.
Module 9: Creating Reports
Goal: To create reports on ClearCase elements and operations.
Overview: This module introduces students to ClearCase reporting capabilities using
cleartool commands: annotate, describe, lshistory, and find. It also discusses the
command formatting option, -fmt. The Windows version of the course discusses creating
reports using the Report Builder and Report Viewer.
Exercises: Tool-based exercise at the end of the module to create ClearCase reports.
Module 10: Managing Builds in ClearCase
Goal: Build using ClearCase build utilities.
Overview: This module introduces ClearCase build utilities, clearmake and omake, and
discusses the advantages of using them to build software. It explains ClearCase build
auditing and build avoidance capabilities. It explains derived objects, configuration
records, and the wink in process.
Exercises: Tool-based exercise at the end of module to build using ClearCase build
utilities, view and compare configuration records, and add a derived object to source
control.