{"id":269,"date":"2026-10-13T06:01:53","date_gmt":"2026-10-13T06:01:53","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2010\/07\/08\/clearcase-faq\/"},"modified":"2026-10-13T06:01:53","modified_gmt":"2026-10-13T06:01:53","slug":"clearcase-faq","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/clearcase-faq\/","title":{"rendered":"Rational ClearCase FAQ: Essential cleartool Commands for Views, Branches, Labels, and Hijacked Files"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Originally published on 2010-07-08; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you work with Rational ClearCase and need fast answers for common operational tasks, this guide is for you. Based on the <a href=\"https:\/\/www.devopsschool.com\/blog\/clearcase-faq\/\">original FAQ<\/a>, it consolidates high-value commands for finding view-private files, branch activity, checkouts, labels, and snapshot-view hijacked files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2010\/07\/clearcase-faq.png\" alt=\"ClearCase FAQ\" \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What this FAQ helps you do<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>List view-private files and checked-out items in a view.<\/li><li>Find files by branch, label, date, and user.<\/li><li>Report and scope checkouts using <code>lsco<\/code> options.<\/li><li>Use label-focused config spec rules safely.<\/li><li>Understand reserved vs unreserved checkout behavior.<\/li><li>Detect and recover from snapshot-view hijacked file states.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">ClearCase command quick reference<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Task<\/th><th>Command or action<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>List view-private and checked-out objects<\/td><td><code>cleartool ls -r -view_only<\/code><\/td><td>Original note says checked-out directories are not listed.<\/td><\/tr><tr><td>Filter view-private list by pattern<\/td><td><code>cleartool ls -r -view_only | find \".java\"<\/code><\/td><td>Uses shell text filtering; behavior is environment-dependent.<\/td><\/tr><tr><td>Find files on a private branch<\/td><td><code>cleartool find -all -version \"version(...\/private_branch\/LATEST)\" -print<\/code><\/td><td>Replace <code>private_branch<\/code> with your branch type.<\/td><\/tr><tr><td>Find all file elements under current directory<\/td><td><code>cleartool find . -type f -print<\/code><\/td><td>Recursive.<\/td><\/tr><tr><td>Find all symlinks under current directory<\/td><td><code>cleartool find . -type l -print<\/code><\/td><td>Recursive.<\/td><\/tr><tr><td>Find checkouts on a specific branch<\/td><td><code>cleartool lsco -brtype branch_name -r -l<\/code><\/td><td>Add <code>-cvi<\/code> or <code>-me<\/code> to narrow results.<\/td><\/tr><tr><td>Show recent VOB history<\/td><td><code>ct lshistory -all -since yesterday<\/code><\/td><td><code>ct<\/code> is commonly used as a local alias for <code>cleartool<\/code>.<\/td><\/tr><tr><td>Find all elements with a label<\/td><td><code>cleartool find -all -version \"lbtype(MY_LABEL)\" -print<\/code><\/td><td>Run from within a view context.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Find files and elements in a view<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run these in an appropriate VOB\/view context. For syntax details, the original FAQ recommends <code>cleartool man find<\/code> and <code>cleartool man lscheckout<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\">cleartool ls -r -view_only\ncleartool ls -r -view_only | find <span class=\"hljs-string\">\".java\"<\/span>\ncleartool find -all -version <span class=\"hljs-string\">\"version(...\/private_branch\/LATEST)\"<\/span> -<span class=\"hljs-keyword\">print<\/span>\ncleartool find . -type f -<span class=\"hljs-keyword\">print<\/span>\ncleartool find . -type l -<span class=\"hljs-keyword\">print<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Find checkouts and recent activity<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For branch-focused checkout reporting, <code>lsco<\/code> options change scope significantly:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option set<\/th><th>Scope<\/th><th>Typical use<\/th><\/tr><\/thead><tbody><tr><td><code>-brtype branch_name -r -l<\/code><\/td><td>All matching checkouts recursively<\/td><td>Branch-wide audit<\/td><\/tr><tr><td><code>-brtype branch_name -r -l -cvi<\/code><\/td><td>Current view only<\/td><td>View-local work review<\/td><\/tr><tr><td><code>-brtype branch_name -r -l -me<\/code><\/td><td>Only current user<\/td><td>Personal cleanup before deliver\/checkin<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\">cleartool lsco -brtype branch_name -r -l\ncleartool lsco -brtype branch_name -r -l -cvi\ncleartool lsco -brtype branch_name -r -l -me<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\">ct lshistory -all -since 12-Jan-05\nct lshistory -all -since yesterday\nct lshistory -all -since yesterday -user mark<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Query changes by date and label<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original FAQ includes examples for branch\/date reporting and label-based diffs. Use branch, label, date, and user placeholders that match your naming conventions.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css language-bash\"><span class=\"hljs-selector-tag\">cleartool<\/span> <span class=\"hljs-selector-tag\">find<\/span> <span class=\"hljs-selector-tag\">-all<\/span> <span class=\"hljs-selector-tag\">-ver<\/span> \"<span class=\"hljs-selector-tag\">brtype<\/span>(<span class=\"hljs-selector-tag\">test_3<\/span><span class=\"hljs-selector-class\">.1_main<\/span>) &amp;&amp; <span class=\"hljs-selector-tag\">created_since<\/span>(12<span class=\"hljs-selector-tag\">-Dec-03<\/span><span class=\"hljs-selector-class\">.01<\/span><span class=\"hljs-selector-pseudo\">:00)<\/span> &amp;&amp; !<span class=\"hljs-selector-tag\">created_since<\/span>(30<span class=\"hljs-selector-tag\">-Dec-03<\/span>)\" <span class=\"hljs-selector-tag\">-print<\/span>\n<span class=\"hljs-selector-tag\">cleartool<\/span> <span class=\"hljs-selector-tag\">find<\/span> <span class=\"hljs-selector-tag\">-all<\/span> <span class=\"hljs-selector-tag\">-ver<\/span> \"<span class=\"hljs-selector-tag\">brtype<\/span>(<span class=\"hljs-selector-tag\">ep_3<\/span><span class=\"hljs-selector-class\">.1_main<\/span>) &amp;&amp; <span class=\"hljs-selector-tag\">created_since<\/span>(12<span class=\"hljs-selector-tag\">-Dec-03<\/span><span class=\"hljs-selector-class\">.01<\/span><span class=\"hljs-selector-pseudo\">:00)<\/span> &amp;&amp; !<span class=\"hljs-selector-tag\">created_since<\/span>(30<span class=\"hljs-selector-tag\">-Dec-03<\/span>) &amp;&amp; <span class=\"hljs-selector-tag\">created_by<\/span>(<span class=\"hljs-selector-tag\">Mark<\/span>)\" <span class=\"hljs-selector-tag\">-print<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\">cleartool find -all -ver <span class=\"hljs-string\">\"version(...\/integration_branch_name\/LATEST) &amp;&amp; !lbtype(LABEL_NAME) &amp;&amp; !version(...\/integration_branch_name\/0)\"<\/span> -<span class=\"hljs-keyword\">print<\/span>\ncleartool find -all -ver <span class=\"hljs-string\">\"lbtype(LABEL1) &amp;&amp; !lbtype(LABEL_2)\"<\/span> -<span class=\"hljs-keyword\">print<\/span>\ncleartool find -all -version <span class=\"hljs-string\">\"lbtype(MY_LABEL)\"<\/span> -<span class=\"hljs-keyword\">print<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Config spec example for selecting a label<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the pattern shown in the original FAQ for loading labeled versions while keeping checked-out items selected first:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript language-plaintext\">element * CHECKEDOUT\nelement * LABEL_NAME -nocheckout\nelement * <span class=\"hljs-regexp\">\/main\/<\/span><span class=\"hljs-number\">0<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Interpretation:<\/strong> first select checkouts in your view, then select elements with the target label (without allowing checkout for that rule), then fall back to version zero for unmatched elements.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Reserved vs unreserved checkouts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ClearCase supports both exclusive and parallel checkout models. The difference matters at checkin time when multiple developers modify the same branch successor.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Checkout type<\/th><th>Branch rights<\/th><th>Checkin behavior<\/th><th>Team impact<\/th><\/tr><\/thead><tbody><tr><td>Reserved<\/td><td>Exclusive right to create the successor version on that branch<\/td><td>Competing successor creation is blocked<\/td><td>Safer serialization, lower parallelism<\/td><\/tr><tr><td>Unreserved<\/td><td>Multiple views can checkout in parallel<\/td><td>First checkin creates successor; later checkins must merge<\/td><td>Higher parallelism, merge required for late checkins<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Hijacked files in snapshot views<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In snapshot views, editing a loaded file without checkout can produce a hijacked state. The original FAQ recommends using ClearCase Explorer tools to inspect, compare, keep, or discard those edits.<\/p>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[Run Find Modified Files or Update View] --> B{Hijacked file found}\n    B -- No --> C[Continue normal work]\n    B -- Yes --> D[Compare with original version]\n    D --> E{Keep local edits}\n    E -- Yes --> F[Check out file]\n    F --> G[Check in when ready]\n    E -- No --> H[Undo hijacked file]\n    G --> I[Update snapshot view]\n    H --> I\n<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>In ClearCase Explorer, right-click the snapshot view and run <em>Find Modified Files<\/em>.<\/li><li>Right-click a hijacked file and use <em>Compare with Original Version<\/em> to inspect differences.<\/li><li>If you want to keep changes, check out the file and proceed with normal checkin flow.<\/li><li>If you want to discard changes, use <em>Undo Hijacked File<\/em>, then update the snapshot view.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Checked out but removed status<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original FAQ describes this state as: the VOB records an element as checked out, but the corresponding view-private checked-out file is missing. One common scenario mentioned is symlink-related behavior where target and link paths share underlying storage.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Check symlink relationships first (Explorer path: Symlinks and target operations).<\/li><li>Check in or uncheckout the symlink target element when appropriate.<\/li><li>If not symlink-related, one recovery path is to uncheckout the element (work may be unrecoverable if no private copy exists).<\/li><\/ul>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\">cleartool unco path\/to\/file<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Common pitfalls<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Running <code>find<\/code> or <code>lsco<\/code> outside the intended VOB\/view context.<\/li><li>Assuming <code>ct<\/code> alias exists everywhere; use full <code>cleartool<\/code> if needed.<\/li><li>Forgetting that user IDs can be case-sensitive in history queries.<\/li><li>Date expressions can be locale and format sensitive; validate with a narrow test first.<\/li><li>Using <em>Undo Hijacked File<\/em> without backup can permanently discard local edits.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This revised ClearCase FAQ turns legacy notes into a practical reference for daily operations. It covers command-line queries, checkout\/reporting workflows, config spec patterns, and snapshot hijacked-file handling.<\/p>\n","protected":false},"author":1,"featured_media":4448,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[25],"tags":[415,4311,4312,4315,4313,622,4314,4316],"class_list":["post-269","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-clearcase","tag-clearcase","tag-clearcase-faqs","tag-clearcase-frequently-asked-questions","tag-clearcase-general-questions-and-answers","tag-clearcase-questions-and-answers","tag-faqs","tag-rational-clearcase-faqs","tag-rational-clearcase-questions"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=269"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/269\/revisions"}],"predecessor-version":[{"id":79097,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/269\/revisions\/79097"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/4448"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}