mkeltype

Creates or updates an element type object

Applicability

Product

Command type

VersionVault

cleartool subcommand

VersionVault Remote Client

rcleartool subcommand

Platform

UNIX®

Linux®

Windows®

Synopsis

  • VersionVault
    mkeltype [ –rep/lace ] [ –glo/bal [ –acq/uire ] | –ord/inary ]
    –sup/ertype elem-type-selector [ –man/ager mgr-name ]

    [ –pti/me ] [ –mer/getype { auto | user | never | copy } ]

    [ –c/omment comment | –cfi/le comment-file-pname |–cq/uery

    | –cqe/ach | –nc/omment ] element-type-selector ...

  • VersionVault Remote Client:
    mkeltype [ –rep/lace ] [ –glo/bal [ –acq/uire ] | –ord/inary ]
    –sup/ertype elem-type-selector [ –man/ager mgr-name ]

    [ –pti/me ] [ –mer/getype { auto | user | never | copy } ]

    [ –c/omment comment | –cq/uery

    | –cqe/ach | –nc/omment ] element-type-selector ...

Description

The mkeltype command creates one or more user-defined element types for future use within a VOB. User-defined element types are variants of the predefined types. After creating an element type, you can create elements of that type by using mkelem, or you can change an existing element's type by using chtype. To remove an element type, use the rmtype command.

Note: You cannot remove an element type from a replicated VOB or change the definition of an element type in a replicated VOB.

Setting merge behavior for an element type

In some cases, you can specify a merge behavior for an element type when you create it. This is true for element types used in a UCM deliver or rebase operation. (See the deliver and rebase reference pages). There are four kinds of merge behavior, described here with their associated keywords.

Keyword

Behavior

auto (default)

A VersionVault findmerge operation attempts to merge elements of this type.

user

A VersionVault findmerge operation performs trivial merges only. Nontrivial merges must be performed manually.

never

A VersionVault findmerge operation ignores elements of this type. The never attribute is useful for working with files such as binary files or bitmap graphics images.

copy

A VersionVault findmerge operation attempts to merge elements of this type automatically by copying the from-version to the to-version (replacing the to-version with the from-version).

To specify a behavior, use one of the keywords as the argument to the –mergetype option. If the option is not specified, automatic merge behavior is in effect for elements of this element type.

Element supertypes

When you create a new element type, you must specify an existing element type as its supertype. The new element type inherits the type manager of the supertype, unless you use the –manager option. The type manager performs such tasks as storing/retrieving the contents of the element's versions. (See the type_manager reference page.)

For example, you create an element type c_source, with text_file as the supertype; c_source inherits the type manager associated with the text_file supertype—the text_file_delta manager.

You can use the lstype command to list both the supertype and the type manager of an element type.

Predefined element types

Each VOB is created with the element types that correspond to the type managers that are described in the type_manager reference page.

You can use any of these element types as the –supertype specification.

Text files, cleartext, and a view's text mode

The information in this section applies to the element types text_file and compressed_text_file, to all subtypes of these types, and to all user-defined element types derived from them through the supertype mechanism.

When a load operation is issued from a snapshot view, or a user program accesses a version through a dynamic view, the type manager handles it as follows:

  1. Extracts the text lines of that particular version from the data container.
  2. Stores the extracted lines in a cleartext file, within the cleartext storage pool directory associated with the element.
  3. Arranges for the program to access the cleartext file (not the structured data container).

On subsequent accesses to the same version, steps 1 and 2 are skipped; the program accesses the existing cleartext file, which is cached in the cleartext storage pool.

Operating systems vary in their use of text-file line terminators. To avoid confusion, each VersionVault view has a text mode, which determines the line terminator for text files in that view. (See the mkview reference page.) After the type manager constructs a cleartext file for a version, its line terminators may be adjusted before the version is presented to the calling program. Adjustment of line terminators can also occur when the checkout command copies a version of a text file element, creating a view-private file (the checked-out version).

Restrictions

Identities

No special identity is required unless you specify the –replace option. For –replace, you must have one of the following identities:

  • Type owner
  • VOB 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: VOB, element type (with –replace only).

Mastership

(Replicated VOBs only) No mastership restrictions.

Other

You cannot use the –replace option in a replicated VOB.

Options and arguments

Handling of name collisions

Default
An error occurs if an element type named type-name already exists in the VOB.
–rep/lace
Replaces the existing definition of type-name with a new one. If you do not include options from the existing definition, their values are replaced with the defaults. (Exception: the type's scope does not change unless you explicitly specify a –global or –ordinary option.)

If you specify a comment when using –replace, the comment appears in the event record for the modification (displayed with lshistory –minor); it does not replace the object's creation comment (displayed with describe). To change an object's creation comment, use chevent.

You cannot change the following:
  • The type manager (–manager or –supertype option) if there are existing elements of the type type-name, or if there are existing elements that are of subtytpes of the type type-name.
  • The definition of a predefined element type (such as file or text_file)

Also, when converting a global type to ordinary, you must specify the global type as the element-type-selector argument. You cannot specify a local copy of the global type.

Specifying the scope of the element type

Default
Creates an ordinary element type that can be used only in the current VOB.
–glo/bal [ –acq/uire ]
Creates an element type that can be used as a global resource by the VOBs in the administrative VOB hierarchy. With –acquire, mkeltype checks all eclipsing types in the VOBs and converts them to local copies of the new global type.

For more information, see the Help.

–ord/inary
Creates an element type that can be used only in the current VOB.

Supertype / type manager inheritance

Default
None. You must specify a supertype; the new element type inherits the type manager of this supertype, unless you use the –manager option.
–sup/ertype elem-type-selector
The name of an existing element type, predefined or user-defined. Predefined element types are listed in Predefined element types. You can specify –supertype file_system_object only if you also specify a type manager with –manager.

Specify element-type-selector in the form [eltype:]type-name[@vob-selector]

Supertype / type manager inheritance

type-name

Name of the element type

See the cleartool reference page for rules about composing names.

vob-selector

Object-selector for a VOB, in the form [vob:]pname-in-vob. The pname-in-vob can be the pathname of the VOB tag (whether or not the VOB is mounted) or of any file system object within the VOB (if the VOB is mounted)

The lstype command lists a VOB's existing element types.

–man/ager mgr-name
Specifies the type manager for the new element type, overriding inheritance from the supertype. The sectionPredefined element types lists the type managers. For more information about these type managers, see the type_manager reference page.

Controlling version-creation time

Default
For all elements of the newly created type: when a new version is checked in, its time stamp is set to the checkin time.
–pti/me
For all elements of the newly created type: preserves the time stamp of the checked-out version during checkin. In effect, this establishes checkin –ptime as the default for elements of this type.

Mergetype

Default
Instantiations of the new element type use automatic merging.
–mer/getype keyword
Specifies the merge behavior for an element type, using one of the keyword arguments listed in Setting merge behavior for an element type. This is in effect only when the element type is used in a UCM deliver or rebase operation.

Event records and comments

Default
Creates one or more event records, with commenting controlled by your .versionvault_profile file (default: –cqe). 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.

Naming the element types

Default
The element type is created in the VOB that contains the current working directory unless you specify another VOB with the @vob-selector argument.
type-name ...
Names of the element types to be created. Specify element-type-selector in the form [eltype:]type-name[@vob-selector]

Naming the element types

type-name

Name of the element type

See the cleartool reference page for rules about composing names.

vob-selector

Object-selector for a VOB, in the form [vob:]pname-in-vob. The pname-in-vob can be the pathname of the VOB tag (whether or not the VOB is mounted) or of any file system object within the VOB (if the VOB is mounted)

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 an element type named c_source using the predefined text_file element type as the supertype.

    cmd-context  mkeltype –supertype text_file –nc c_source
    Created element type "c_source".

  • Create an element type for storing binary data named bin_file, using the predefined file element type as the supertype.

    cmd-context  mkeltype –supertype file –nc bin_file
    Created element type "bin_file".

  • Create an element type based on the user-defined element type bin_file (from previous example) for storing executable files.

    cmd-context mkeltype –supertype bin_file –nc exe_file
    Created element type "exe_file".

  • Create a "directory of include files" element type, using the predefined directory element type as the supertype. Provide a comment on the command line.
    cmd-context mkeltype –supertype directory –c "directory type for include files" incl_dir 
    Created element type "incl_dir". 
  • Change the checkin default for an existing element type so that it preserves the file modification time. Provide a comment on the command line.

    cmd-context  mkeltype –replace –supertype bin_file –ptime
    –c "change archive mod time default" archive
    Replaced definition of element type "archive".

  • Create an element type for storing binary data named grph_file, using the predefined file element type as the supertype. Specify the merge type as never. Merge type information is applied when an element of this type is used in a UCM deliver or rebase operation.

    cmd-context  mkeltype –supertype file –mergetype never  –nc grph_file
    Created element type "grph_file".