Search code examples
clearcase

ClearCase pathnames involving more than one element


I'd like to understand what makes ClearCase create paths like these (more than one @@):

\TUNE\Integration\XmlFiles\PM_Content@@\main\integ_mp1601\4\CommunityLink.png@@\main\integ_mp151\151x\1

Rather than the more typical (single @@): \TUNE\Integration\XmlFiles\PM_Content\CommunityLink.png@@\main\integ_mp160\160x\1

I don't seem to have a control over it and it is not immediately obvious to me why CC does that. And when it happens there seems to be nothing I can do to "convince" it to use the simpler format.


Solution

  • First, a bit of context:

    '@@' is linked with dynamic views

    You can see that concept with version extended path: using a pathname_ccase syntax, you can add characters to the end of a relative or full path name, turning it into a VOB-extended path name.
    VOB-extended path names that specify versions of elements are the most commonly used; they are called version-extended path names.

    /vobs/proj/foo.c@@/main/motif/4
    

    That means you can:

    The idea is: in a dynamic view, you can access (read the content of) any version of a file through the extended pathname.


    Now, why multiple '@@'?

    The documentation adds:

    This symbol is required to effect a switch from the standard file/directory namespace to the extended element/branch/version namespace.

    There are two equivalent ways to think of @@:

    • When appended to the name of any element, the extended naming symbol turns off transparency (automatic version-selection).
      Thus, you must specify one of the element's versions explicitly.
    • The extended naming symbol is part of an element's official name.
      For example, foo.c is the name of a version (the particular version that appears in the view); foo.c@@ is the name of the element itself.

    So with:

    TUNE\Integration\XmlFiles\PM_Content@@\main\integ_mp1601\4\CommunityLink.png@@\main\integ_mp151\151x\1
    

    You have:

    • PM_Content@@ the name of the element (folder) PM_Content at its version \main\integ_mp1601\4
    • CommunityLink.png@@ the name of the element (gile) CommunityLink.png at its version \main\integ_mp151\151x\1

    That happens when the current PM_Content folder, visible in the view, no longer lists CommunityLink.png (which was deleted/rmname'd):

    • you need to select the right folder version (which does list the file)
    • then you can access to any version of the file you want