Tuesday, October 16, 2007

Base to UCM - creating component problem

In one of the VOBs, I got problem creating components.

M:\qinl_base> cd MidTier
M:\qinl_base\MidTier>cleartool mkcomp -root HostInt MidTier_HostInt@\CBFEProjects
Processing subdirectory elements...
Done processing subdirectory elements.
Created component "MidTier_HostInt".

M:\qinl_base\MidTier>cleartool mkcomp -root Srv MidTier_Srv@\CBFEProjects
Processing subdirectory elements...
cleartool: Error: Element "M:\qinl_base\MidTier\HostInt\docs\schema\base24es\IFX.xsd@@" is a member of another component.
cleartool: Error: Unable to create component.

This is a known issue when converting Base ClearCase to UCM. If some of the elements have been moving between two future component directories, UCM gets confused and cannot convert the second component. There are no solutions to the issue. To workaround the problem, you can either:

1. rmelem the elements and lose the histories.

2. convert to component at the VOB level, instead of the top directory level.
cleartool mkcomp -root . MidTier@\CBFEProjects

3. find out all the directory versions that reference to the element in the second component. rmver all the versions, so the reference to the elements is no longer there.

4. instead of converting, create new CVOBs, do clearexport_ccase/clearimport. By doing export, the history versions of directories are lost. This can workaround the mkcomp issue. and it can be good or bad depends on whether you want to shrink the size of the VOB or want the whole history.