Essentials of Rational Clearcase Module 2: Working With Files Under Source Control
Essentials of Rational Clearcase Module 2: Working With Files Under Source Control
1
Objectives
Upon completing this module, you should be able to:
Explain the checkout/checkin model
Explain the difference between a reserved and
unreserved checkout
Check out/check in files and directories
Define version trees and branches and explain how
branches enable parallel development
Edit a view config spec to automatically create a
branch
2
Typical Workflow: Work on Files
3
Checkout/Checkin Model
When a file is under source control, you check it out to
work on it
A file is checked out to a
view and a modifiable
copy is available to work on
A placeholder is created in the
version tree as the potential
successor version
When you check in the file,
a new version is added to the
element version tree
4
View Before and After Checking out
hello.c
5
Types of Checkout
Reserved checkout:
Default checkout
Has exclusive rights to next place on
version tree
No checkins can be made on the same
branch until the checkout is resolved
Only allowed if no other reserved
checkouts exist for the branch
Unreserved checkout:
Allowed regardless of the status of other
checkouts of the version
Before check in, must be merged or
discarded if any checkin has taken place
6
Checking Out a File: ClearCase
Explorer
7
Checking Out a File: Windows Explorer
8
Checking Out a File: Command Line
Interface
Usage:
Example:
X:\Hardware\src>cleartool checkout hello.c
Checkout comments for “hello.c":
Bug fixing
. You MUST end the
comment by typing
Checked out “hello.c" from version “.” and Enter
"\main\r2_int\alex_r2\2".
9
Versioning Directories
To change the directory namespace you must create
a new directory version
The ClearCase GUI automatically checks out a
directory and creates a new version if a change
occurs to the directory namespace (some operations
will prompt you to check out the directory)
Using the CLI, you must check out/check in a
directory to create a new version
To change only file contents but not the directory
namespace, you do not need to check out the
directory
10
Checking in a New Version
Adds a new version to the version
tree
Removes the read/write copy of the
file from the view storage area
The checked in version becomes
available to users using dynamic
views and to snapshot view users
upon the next update
Use ClearCase Explorer,
Version Tree Browser,
Windows Explorer, ClearCase
supported IDEs, or the CLI
11
Resolving Checkouts
12
What Is a Version Tree?
A hierarchical representation of an element in which
all versions are logically organized.
13
Version-extended Names
Each version of an element has a unique identifier
The extended naming symbol denotes a path into
the version tree of an element
@@ is the default extended naming symbol
14
Viewing Versions of an Element
Graphically
ClearCase graphically
depicts an element version
tree in the Version Tree
Browser
Version selected by
your view
15
What Are View-private Files?
Files that are not under ClearCase source control
Files that reside in the view; other users in other views
do not see them
Examples:
Temporary files created during development or testing
Files not yet added to source control
Read/write copies of files checked out of source control
16
Branching Enables Parallel
Development
Allows different projects to use the same source at the
same time
Controls public/private work
Isolates changes
Temporary, such as new
features that have not yet
been tested
Permanent, such as fixing
a bug in a retired release
Prevents roadblocks — development can proceed
during an integration period
17
What Is a Branch Type?
A user-defined name that forms a unique pathname in
the version tree
Allows changes across multiple elements to be logically
grouped together
Centralizes administrative control of branch names
18
Working on Branches
When working on a project team, you will most likely work on
element branches other than /main
A view config spec specifies which versions of the element
appear in the view
Edit your view
config spec to
select the correct
branches and the
correct versions
19
The Default View Config Spec
A default config spec is automatically set whenever
you create a new view
Rule 1
Rule 2
Rule 1
Rule 2
22
Creating a New Branch Automatically
Change your config spec to create a branch when you
check out elements that have an R1 label.
23
Creating a New Branch Automatically
(cont.)
24
Module Review
How does ClearCase protect files from being
modified inadvertently?
What happens when you check out a file?
What is the difference between a reserved and an
unreserved checkout?
When do you need to create a new version of a
directory?
What happens when you check in a file?
What is a version tree?
What is a view default config spec?
25
Module Lab
In this lab, you perform the following tasks:
Edit a config spec to automatically create branches
View an element version tree
Check out/check in files
Create a view-private file
26