Clearcase UCM: rebase fails - error (apparently) is a lie - what's the root cause?

StackOverflow https://stackoverflow.com/questions/20111592

  •  03-08-2022
  •  | 
  •  

Question

I have a rather standard setup with a development stream (devStream) that delivers to and rebases from an integration stream (intStream).

I have a file in my development view (devView) that I can checkout, modify, and checkin normally.

However, when I attempt to deliver (and later rebase) however I get an error that baffles me... (especially as I have been delivering and rebasing for the past 6 months) It may be worth noting that we recently upgraded from Rhapsody 8.0.2 to 8.0.4 (and correspondingly upgraded the diffmerge tool that clearcase's map file points to for rhapsody files), however given when the errors are arising I can't see how this could be at fault.

Since the graphical mode can be hard to get enough debug info from I captured the results of some command line runs.

Here's the (annonymized) result for


starting a rebase

cleartool> rebase -recommended
*SNIP*
Creating integration activity...
Setting integration activity...
Merging files...
Checked out "C:\CCVs\myDevView\shortenedPath\theFile.sbs" from version "\main\intStream\devStream\9".
  Attached activity:
    activity:NSSLB00001350@\projects  "rebase devStream on 20131120.195128."
Needs Merge "C:\CCVs\myDevView\shortenedPath\theFile.sbs" [to \main\intStream\devStream\CHECKEDOUT from \main\intStream\9 base \main\intStream\8]
cleartool: Error: Unable to access "C:\CCVs\myDevView\shortenedPath\theFile.sbs": No such file or directory.
cleartool: Error: An error occurred while merging file elements in the target view.
cleartool: Error: Unable to perform merge.
cleartool: Error: Unable to perform integration.
cleartool: Error: Unable to rebase stream "devStream".

attempting to resume the rebase

cleartool> rebase -resume
Rebase in progress on stream "devStream".
Started by "XXXXX" at 11/20/2013 7:51:28 PM.
Merging files...
cleartool: Error: Unable to access "C:\CCVs\myDevView\shortenedPath\theFile.sbs": No such file or directory.
cleartool: Error: Some files are already checked out to a non-integration activity in the target view.
cleartool: Error: Unable to perform merge.
cleartool: Error: Unable to perform integration.
cleartool: Error: Some files are already checked out to a non-integration activity in the target view.
cleartool: Error: Unable to resume rebase.

listing the information associated with the thusly created integration rebase activity

cleartool> lsactivity -long NSSLB00001350
activity "NSSLB00001350"
 2013-11-20T19:52:00-06:00 by XXXXXX
  "Integration activity created by rebase on 11/20/2013 7:51:28 PM.
   "
  owner: XXXXX
  group: XXXXX
  stream: devStream@\projects
  current view: myDevView
  title: rebase devStream on 20131120.195128.
  change set versions:
    C:\CCVs\myDevView\shortenedPath\theFile.sbs@@\main\intStream\devStream\CHECKEDOUT.94426
  clearquest record id: NSSLB00001350
  clearquest record State: Active
cleartool>

listing checkouts for anyone, on any stream, anywhere in this portion of the directory structure

cleartool> lsco -r
--11-20T19:51  XXXXX    checkout version ".\shortenedPath\theFile.sbs" from \main\intStream\devStream\9 (reserved)
  Attached activity:
    activity:NSSLB00001350@\projects  "rebase devStream on 20131120.195128."

At this point I'm confused about how to proceed. Googling isn't bringing up anything that seems relevant (or maybe my google skills are weak).

It's also worth pointing out that my clearcase skills are entirely self-taught on an as-needed basis... so I'm sure I've got holes in my knowledge. Meaining even if something seems like it would have been obvious to do, please point it out; I may be unaware.


Requested Info

With no rebase being attempted

C:\CCVs\myDevView\shortenedPath>cleartool ls    
theFile.sbs@@\main\intStream\devStream\9              Rule: ...\devStream\LATEST
theFile.sbs.merge
theFile.sbs.merge.1
theFile.sbs.merge.2
theFile.sbs.merge.3
theFile.sbs.merge.4
*snip (other files)*

In middle of failed rebase

theFile.sbs@@\main\intStream\devStream\CHECKEDOUT from \main\intStream\devStream\9 [not loaded, checkedout but removed]
*snip*
theFile.sbs.merge.5

So... the rebase is doing something odd to the file; but why does it dissapear when doing a rebase/deliver and not when doing a normal checkout?

Was it helpful?

Solution

To debug this, you must go to the command line, in a shell, and go to the parent folder of the missing file:

cd /path/to/target/view/path/to/parent/folder

# in your case

cd C:\CCVs\myDevView\shortenedPath\
cleartool ls
cleartool lsvtree -graph .

The status of the file returned by the cleartool ls can give you a clue as to what is going on.
For instance "checkout but removed" would means the mergetool tried to access/open that file, but somehow it was deleted: that happens when said file is taken by a process, and cannot be completely checked out.

The lsvtree can also give you clues regarding the parent folder (to see if it was merged or not).

Another approach is to cancel that rebase, and try it again in a dynamic view instead of a snapshot view, in order to avoid any side-effect with a snapshot view not correctly updated.


The OP Khanmots concludes in the comments:

I undid the rebase (to get a copy of the file) and started it again.
When it bombed out I copied the file back in then hit to restart the rebase. Deleted it again.
I then replaced the file while leaving the prompt to start the diffmerge tool open, this allowed diffmerge to actually launch... but when I tell the diffmerge to save (after resolving differences) it deletes the file and creates another .merge.# file.
At this point it's looking like it's a diffmerge issue and not a clearcase issue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top