• 1 reply
  • Latest Post - ‏2013-01-11T13:59:18Z by brcowan
25 Posts

Pinned topic cleartool: Error: Database identifier (dbid) not found in database on co

‏2013-01-10T23:15:53Z |
I have ClearCase on Win 7 64-bit.

I'm writing a checkout postop trigger. When it runs successful (does what I want) it ends with three error messages:

cleartool: Warning: Checked-out version is not selected by view.
cleartool: Error: Database identifier (dbid) not found in database: "\bbjunk".

I think the logic of the trigger is confusing ClearCase. Here is what the trigger is doing using this config spec:

element * CHECKEDOUT
element * \main\bp21\LATEST
element * ...\bp21_s\LATEST
element * ...\bp20\LATEST -mkbranch bp21_s
element * ...\bp19\LATEST -mkbranch bp21_s
element * \main\LATEST -mkbranch bp21

In short, if the user checks out an element from the either the bp19 or bp20 branches, CC will branch to the bp21_s branch and do the checkout. Then the postop trigger starts. If the checkout is to a branch ending with "_s" the trigger unchecks the element out and performs a new checkout to a branch directly off of \main (\main\bp21 in this case) using the mkbranch command. It then copies the contents of file originally being checked out to the checkout and creates a merge arrow from the version originally being checked out to the final checkout.

At the end the version the trigger wants to be checked out is successfully checked out and the merge arrow is created. But I get those errors from the original checkout command that launched the trigger.

Any idea why?

To be a little clearer, here are the steps that are happening for a file.
1. User checks out foo.c@@/main/bp19/1
2. The checkout results in foo.c@@/main/bp19/bp21_s/CHECKEDOUT
3. The trigger fires
4. The checkout is undone
5. The "cleartool mkbranch" command creates a checkout to foo.c@@/main/bp21/CHECKEDOUT
6. A merge hyperlink is created from version /main/bp19/1 to /main/bp21/CHECKEDOUT
7. The warning and error appear.

(Please do not ask why the customer wants this trigger. If you could see their whole development process mess, this is actually, I hate to say it, a good idea.)
  • brcowan
    763 Posts

    Re: cleartool: Error: Database identifier (dbid) not found in database on co

    Brian, as long as you are undoing a checkout the postop trigger, you will get this error. Period. You can't avoid it because your trigger is knocking the legs out from underneath the parent cleartool command. Personally, I would use a preop trigger that checks the selection rule used to find the element, and if it makes the wrong branch, abort the checkout.

    I'm actually surprised that the merge hyperlink is getting created, is that part of the trigger as well?

    Brian Cowan
    Advisory Software Engineer
    ClearCase Software Advisory Team (SWAT)
    Rational Software
    IBM Software Group
    550 King St
    Littleton, MA 01460

    Phone: 1.978.899.5436