winkin

Accesses one or more derived objects (DOs) from a dynamic view, or converts a nonshareable derived object to a shareable (promoted) derived object

Applicability

Product

Command type

VersionVault

cleartool subcommand

Platform

UNIX

Linux

Windows

Synopsis

  • Wink in a single DO or a list of explicitly named DOs:
    winkin [ –print ] [ –noverwrite ] [ –siblings [ –adirs ] ]
    [ –out pname ] do-pname ...
  • Recursively wink in a DO and all of its subtargets:
    winkin [ –print ] [ –noverwrite ] [ –recurse [ –adirs ]
    [ –select do-leaf-pattern ] [ –ci ] ] do-pname ...

Description

The winkin command enables you to access the data of any existing DO, even if it does not match your view's build configuration (and, thus, would not be winked in by a clearmake build). Note that you cannot access a DO's file system data directly, using a version-extended pathname, such as hello@@21-Dec.16:18.397. Instead, you must wink in the DO to a dynamic view and then access it using that view.

winkin also converts nonshareable DOs to shareable (promoted) DOs. If you specify a nonshareable DO, winkin first advertises the DO by writing information about it to the VOB, and then promotes it by copying its data container into the VOB and moving its configuration record into the VOB. Because a shareable DO cannot have nonshareable sub-DOs or sibling DOs, winking in a nonshareable DO also advertises its sub-DOs and siblings, converting them to shareable DOs. With –siblings, winkin advertises and promotes the DO's siblings.

Note: When a nonshareable DO is converted to a shareable DO, its DO ID changes. For more information, see the VersionVault Guide to Building Software.

Effect on view-resident DO data containers

If you specify a shared DO while working in the view where it was originally built and if a view-resident data container for the DO in that view still exists, then the view-resident data container is scrubbed, and your view accesses the shared data container in VOB storage. This is equivalent to executing a view_scrubber command.

If you specify an unshared DO or nonshareable DO in your view, the data container is promoted to the VOB. The view-resident data container is scrubbed, and your view accesses the data container in VOB storage. This is equivalent to executing a view_scrubber –p command.

When you need to process a large number of DOs, use view_scrubber rather than winkin.

Restrictions

At the file system level, you must have read permission on the DO to be winked in.

Unless you are using the –recurse –ci option pair, you cannot winkin a checked-in DO.

Note: On UNIX or Linux, if you are overwriting an existing DO in your view (perhaps one that was winked in previously), you must have write permission on the existing DO. See the clearmake reference page.

Options and Arguments

Listing results instead of performing the winkin

Default
The listed derived objects are winked in.
–print
Lists the names of DOs that would be winked in. This option is useful for previewing what will happen before you commit to a winkin operation that could overwrite a large number of derived objects in the view.

Preserving unshared derived objects in your view

Default
winkin overwrites any unshared DOs in your view.
–noverwrite
Preserves the unshared DOs in your view. Unshared DOs are often a result of checked-out source files. This option is useful to help limit winkins over DOs that were created from those source files.

Winking in sibling derived objects

Default
Only the listed DOs are winked in, without their siblings (DOs created by the same build script that created the DO to be winked in). Note that you do not need to use –siblings with –recurse, which always winks in siblings.
–siblings
Winks in the siblings of this derived object in addition to the derived object itself.

Winking in derived object subtargets

Default
Only the listed derived objects are winked in, without any derived objects that are subtargets of these objects. Only derived objects in directories rooted at the current working directory are winked in.
–recurse
Recursively winks in all subtargets of the listed derived objects (subject to the restrictions specified by other options). This option works by recursively walking the configuration records that contain those DOs, gathering information about which subtargets to wink in, and weeding out duplicates. The gathered names are then winked in.

If multiple versions of the same object appear in a derived object's configuration, only the most recent version is winked in. A warning tells you which version is being skipped.

winkin –recurse keeps going even if the winkin of one or more of the items in the configuration record hierarchy fails, though the command issues errors for the ones that failed.

Because this command winks in derived objects without regard to any makefile information, it is usually a good idea to run clearmake after performing this operation, to bring everything up to date.

–adirs
Allows winkin to directories other than those rooted at the current directory.

–adirs only has effect with –recurse or –siblings.

–select do-leaf-pattern
(For use in recursive winkins only) Starts gathering the list of files to wink in at the subtargets of do-pname that match the specified pattern. do-leaf-pattern can be a pattern (see the wildcards_ccase reference page) that matches a simple file name; it must not include a slash (/) or the ellipsis wildcard (...). Alternatively, it can be a standard pathname of a derived object.

This option is useful for isolating a derived object that was built as a dependency of another one. For example, this command winks in derived objects starting at the hello.obj that was used to build hello.exe in the current view:

cmd-context winkin –recurse –select hello.obj hello.exe

–select only has effect with –recurse.

–ci
(For use in recursive winkins only) By default, recursive winkins stop at DO versions: DOs that have been checked in as versions of elements and used as sources during the build. This option allows you to recurse into the CRs of DO versions. –ci only has effect with –recurse.

Specifying an alternative pathname

Default
A derived object is winked in to your view at the pathname you specify with a DO-pname argument, minus any DO ID. For example, if you specify the DO-pname ../src/hello@@21-Dec.16:18.397, then by default, it is winked in at pathname ../src/hello. Any object at the destination pathname is overwritten, subject to standard permissions-checking. (Overwriting a shared DO decrements its reference count; no file system data is actually deleted.)
–out pname
An alternative pathname at which to wink in the DO. You must specify exactly one DO in this case, and pname must be in the same VOB as the DO being winked in.
  • If pname is a directory, the DO is winked in to that directory, with the same leaf name as the original DO.
  • Otherwise, pname is treated as a file name.

In either case, an error occurs if an object already exists at the destination. –out only has effect without the –recurse option.

Note: You must use –out if you are not using –recurse and specify another view's DO, using a view-extended pathname, and you intend to wink in the DO to your own view.

Specifying the derived object

Default
None.
do-pname ...
One or more pathnames that specify derived objects. A standard pathname names a DO in the current view; you can also use a view-extended pathname and/or a VOB-extended pathname. For example, on UNIX or Linux systems:

/view/george/users_hw/hello

View-extended pathname

hello@@12-21T16:18.397

VOB-extended pathname, including DO ID

/view/george/users_hw/hello@@01-05T09:16:788

Combination

On Windows systems:

M:\george\users_hw\hello.exe

View-extended pathname

hello.exe@@12-21T16:18.397

VOB-extended pathname, including DO ID

M:\george\users_hw\hello.exe@@01-05T09:16:788

Combination

Examples

The UNIX system and Linux examples in this section are written for use in csh. If you use another shell, you might 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 might 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.

  • Wink in another view's DO into your view, using a view-extended pathname. The –out option is required in this case.

    cmd-context  winkin –out . /view/george/usr/hw/hello.o
    Winked in derived object "hello.o"

  • Wink in a DO, using its DO ID, and saving it under another file name.

    cmd-context  lsdo hello.exe
    2007-03-02T20:02 "hello.exe@@2007-03-02T20:02.376"
    2007-03-01T09:06 "hello.exe@@2007-03-01T09:06.365"

    cmd-context  winkin –out hello.March1 hello.exe@@2007-03-01T09:06.365
    Promoting unshared derived object "hello.exe@@2007-03-01T09:06.365"
    Winked in derived object "hello.March1"

  • Create a new derived object and promote it to VOB storage.

    clearmake
    cc -c hello.c
    cc -c util.c
    cc -o hello hello.o util.o

    cmd-context  winkin hello
    Promoting unshared derived object "hello"
    Winked in derived object "hello"

  • Wink in derived object main.obj and all of its siblings.

    cmd-context  lsdo main.obj
    2007-09-04T16:14   "main.obj@@2007-09-04T16:14.49"

    cmd-context winkin –siblings main.obj@@2007-09-04T16:14.49
    Promoting unshared derived object "\mg_test\main.obj".
    Winked in derived object "\mg_test\main.obj"
    Promoting unshared derived object "\mg_test\sibling.exe".
    Winked in derived object "\mg_test\sibling.exe"

  • Recursively wink in derived object main.exe and all of its subtargets.

    cmd-context  winkin –recurse main@@2007-09-04T16:03.34
    Promoting unshared derived object "/vobs/mg_test/main"
    Winked in derived object “/vobs/mg_test/main
    Promoting unshared derived object "/vobs/mg_test/main.o"
    Winked in derived object "/vobs/mg_test/main.o"
    Promoting unshared derived object “/vobs/mg_test/sibling"
    Winked in derived object "/vobs/mg_test/sibling"
    Promoting unshared derived object "/vobs/mg_test/test.o"
    Winked in derived object "/vobs/mg_test/test.o"

    Note: When you use –recurse, you can also specify the DO to wink in by using its view-extended pathname. The DO and its subtargets are recursively winked in to the current (dynamic) view. For example:

    cmd-context winkin –recurse m:\cep\mg_test\main.exe

  • List the DOs that would be winked in during a recursive winkin of derived object main.exe.

    cmd-context winkin –print –recurse main@@2007-09-04T16:03.34
    Would wink in derived object "/vobs/mg_test/main"
    Would wink in derived object "/vobs/mg_test/main.o"
    Would wink in derived object "/vobs/mg_test/test.o"

  • Recursively wink in derived object main.exe and all of its subtargets, preserving the unshared DOs in your view.

    cmd-context winkin –noverwrite –recurse \testvw\mg_test\main.exe
    Winked in derived object "\mg_test\main.exe"
    Winked in derived object "\mg_test\main.obj"
    Winked in derived object "\mg_test\sibling.exe"
    Will not wink in over unshared derived object "\mg_test\test.obj"