Search code examples
clearcasecheckout

How do I create a new clearcase element inside an unreserved checked out directory?


Background

In ClearCase, you can make unreserved checkouts if a certain file is already checked out by another view with the following command:

ct co -unreserved <element>

You can also add a new element to clearcase with the following command

ct mkelem <new_element>

However, using the mkelem command on a file requires that the directory of the file be a checked-out clearcase element.

Issue

I am trying to create a new clearcase element in a directory. This directory is current checked out by another view, thus I need to make an unreserved checkout. The unreserved checkout works perfectly. However, when I try to run ct mkelem newFile after making an unreserved checkout of the directory, I get this error:

% ct mkelem newFile

Creation comments for "newFile": . Created element "newFile" (type "text_file").

ERROR: User [user_name] cannot make reserved checkouts for this file type or branch in this area. File is [/vobs/directory/to/newFile@@/main/0] You can still make an unreserved checkout if needed.

Which lead me to wonder...

Question

Is there a way to make a new clearcase element inside an unreserved checkout of a directory?


Solution

  • This seems to be a custom error message: "You can still make an unreserved checkout".
    Meaning it is not natively displayed by ClearCase.

    So check if there are any VOB trigger in place which would enforce such a policy (no unreserved checkout of a directory): use cleartool lstype -invob \aVob -kind trtype, as in this answer.

    Because you can checkout a folder concurrently in a reserved and unreserved way... which can lead to evil twins, as this thread illustrates:

    evil twins were introduced from users in parallel directory versions, either from another branch or different versions in the same branch (a user had an old unreserved checkout, added a file that another user already added in a reserved checkout later in the version tree, thus you now have evil twins.)