mkcomp

Creates a component object

Applicability

Product

Command type

VersionVault

cleartool subcommand

VersionVault Remote Client

rcleartool subcommand

Platform

UNIX®

Linux®

Windows®

Synopsis

  • VersionVault:
    mkcomp [ –c/omment comment | –cfi/le pname | –cq/uery | –nc/omment ]
    { –roo/t root-dir-pname | –nro/ot }

    component-selector

Description

The mkcomp command creates a component. The scope of a UCM project is declared in terms of components. A project must contain at least one component, and it can contain multiple components. Projects can share components.

An ordinary component groups directory and file elements. The directory and file elements of a component are stored in a VOB. The component object is stored in a project VOB (PVOB). You organize a component's directory and file elements into a directory tree in a VOB. A component's root directory must be the VOB's root directory or one level beneath it. A component includes all directory and file elements under its root directory. To store multiple components in a VOB, make each component's root directory one level beneath the VOB's root directory. If you make a component at the VOB's root directory, that VOB can never contain more than that one component.

An initial baseline is created when you create a component. This baseline selects the /main/0 version of the component's root directory. Use this as a starting point for making changes to the component.

You can use the –nroot option to create a special type of component that holds only composite baselines and no file elements.

Elements cannot be moved from one component to another. Therefore, you cannot reorganize a component into multiple components.

A component's root directory cannot be renamed if it is one level beneath the VOB's root directory.

When converting a subdirectory of an existing non-UCM VOB into a component, mkcomp checks each element recursively and fails if it finds one that is already associated with a different component (usually because the element has hard links to an element in another component or was moved to another directory in the VOB with cleartool mv). You can use rmname to remove the names of elements or links that are causing problems. Hard links can be replaced with symbolic links. In VOBs that are not replicated, names must be removed using rmname -nco (you cannot use rmname -nco in a replicated VOB).

Restrictions

Identities

You must have one of the following identities:

  • PVOB owner
  • root (UNIX® and Linux®)
  • Member of the VersionVault administrators group (VersionVault on Windows®)

Locks

An error occurs if one or more of these objects are locked: the project VOB, the root directory VOB.

Mastership

(Replicated VOBs only) For a component whose root directory is the VOB's root directory, you must master the root directory element. For a component whose root directory is one level beneath the VOB's root directory, you must master all elements that are to be grouped in the component.

Options and arguments

Event records and comments

Default
Creates one or more event records, with commenting controlled by your .versionvault_profile file (default: –nc). See the comments reference page. Comments can be edited with chevent.
–c/omment comment | –cfi/le comment-file-pname |–cq/uery | –cqe/ach | –nc/omment
Overrides the default with the option you specify. See the comments reference page.

The comment is stored in the creation event of the component object.

Specifying what type of component to create

–roo/t root-dir-pname
Specifies a component to be created to group directories and elements and the root directory pathname for this component. To create one component per VOB, the root-dir-pname must be the root directory of a VOB. To create multiple components per VOB, the root-dir-pname must be one level beneath the VOB's root directory. If the specified subdirectory does not already exist, it is created by the mkcomp operation.
Note: On Windows, do not specify a directory with the same name as a Windows reserved device, else the component will be unusable. Following are Windows reserved device names: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. Also avoid using these names followed by an extension; for example, NUL.txt.
–nro/ot
Specifies a component to be created to hold only composite baselines. This type of component does not contain directories or file elements.

Specifying a component selector

component-selector
Identifies the component.

component-selector is of the form [component:]component-name[@vob-selector] where vob is the component's UCM project VOB.

If no vob-selector is given, the component is created in the project VOB if it contains the current working directory; otherwise, the component is not created.

The component name must be unique within the PVOB. All UCM objects share the same namespace. You will get an error if the name you provide collides with the name of an existing UCM object, for example, a project.

Examples

The UNIX system and Linux examples in this section are written for use in csh. If you use another shell, you may need to use different quoting and escaping conventions.

The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.

In cleartool single-command mode, cmd-context represents the UNIX system and Linux shells or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt.

  • Create a component.

    cmd-context  mkcomp -c "modeling component" \
    -root \vob_webo_modeler webo_modeler@\webo_pvob

    Set Admin VOB for component "webo_modeler"
    Created component "webo_modeler".