mkeltype

Creates or updates an element type object

APPLICABILITY

ProductCommand type
ClearCasecleartool subcommand
ClearCase LTcleartool subcommand

Platform
UNIX
Windows

SYNOPSIS

mkeltype [ –rep·lace ] [ –glo·bal [ –acq·uire ] | –ord·inary ]
–sup·ertype elem-type-selector [ –man·ager mgr-name ]
[ –pti·me ] [ –att·ype attr-type-selector[,...] ]
[ –mer·getype { auto | user | never } ]
[ –c·omment comment | –cfi·le comment-file-pname |–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. (See complete list in the section “Predefined Element 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 select the merge behavior of an element type when you create it. This is true for element types of elements used in a UCM deliver or rebase operation. (See the deliver and rebase reference pages). There are three kinds of behaviors, described here with their associated keywords.

KeywordBehavior
auto (default)A ClearCase or ClearCase LT findmerge operation attempts to merge elements of this type.
userA ClearCase or ClearCase LT findmerge operation performs trivial merges only. Nontrivial merges must be performed manually.
never A ClearCase or ClearCase LT findmerge operation ignores elements of this type. The never attribute is useful for working with files such as binary files or bitmap graphics images.

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 following element types:

file Versions can contain any kind of data (text, binary, bitmap, and so on). Uses the whole_copy type manager.
compressed_file Versions can contain any kind of data. Uses the z_whole_copy type manager.
text_file All versions must contain text (multibyte text characters are allowed). Null bytes are not permitted (a byte of all zeros); no line can contain more than 8,000 characters. Uses the text_file_delta type manager.
compressed_text_file All versions must contain text; no line can contain more than 8,000 characters. Uses the z_text_file_delta type manager.
binary_delta_file Versions can contain any kind of data. Uses the binary_delta type manager.
html Subtype of the text_file element type. Uses the _html type manager.
ms_word Subtype of the file element type. All versions must be Microsoft Word files. Uses the _ms_word type manager.
rose Subtype of the text_file element type. Uses the _rose type manager.
xml Subtype of the text_file element type. Uses the _xml type manager.
directory Versions of a directory element catalog (list the names of) elements and VOB symbolic links. Uses the directory type manager, which compares and merges versions of directory elements.
file_system_object Generic element type, with no associated type manager.

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

Text Files, Cleartext, and a View's Text Mode

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 ClearCase and ClearCase LT 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)
  • Member of the ClearCase administrators group (ClearCase on Windows)
  • Local administrator of the ClearCase LT server host (ClearCase LT 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 Administrator's Guide.

–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]

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 section “Predefined 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. This is in effect only when the element type is used in a UCM deliver or rebase operation. There are three types of merge behavior: automatic, for which a findmerge operation attempts to automatically merge elements; user-controlled, for which a findmerge operation performs trivial merges only (other merges must be made manually); and never, meaning findmerge ignores elements of this type. The corresponding keyword arguments are auto, user, and never; auto is the default.

Suggested Attributes

Default
The new element type has no list of suggested attributes.

–att·ype attr-type-selector[,...]
A comma-separated list (no white space) of existing attribute types. Use this option to inform users of suggested attributes for use with elements of the newly created type. This does not restrict users from using other attributes. (Users can view the list with describe or lstype.) Specify attribute-type-selector in the form [attype:]type-name[@vob-selector]
type-name Name of the attribute 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)

Event Records and Comments

Default
Creates one or more event records, with commenting controlled by your .clearcase_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]
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 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 shell 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. Include an attribute list.

    cmd-context mkeltype –supertype bin_file –attype Confidence_Level,QAed –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". 

SEE ALSO

checkin, chtype, describe, lstype, mkelem, rename, rmtype, type_manager



Copyright© 2003 Rational Software. All Rights Reserved.