Accesses one or more derived objects (DOs) from a dynamic view, or converts a nonshareable derived object to a shareable (promoted) derived object
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 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.
At the file system level, you must have read permission on the DO to be winked in.
Note: On UNIX, 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
Preserving Unshared Derived Objects in Your View
Winking In Sibling Derived Objects
- 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.
- Winks in the siblings of this derived object
in addition to the derived object itself.
Winking In Derived Object Subtargets
- 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.
- 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.
- 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:
–select only has effect with –recurse.
- (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
Specifying an Alternative Pathname
- 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.
- If pname is a directory, the DO is winked in to that directory, with the same leaf name as the original DO.
Specifying the Derived Object
- 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 systems:
/view/george/users_hw/hello View-extended pathname hello@@21-Dec.16:18.397 VOB-extended pathname, including DO ID /view/george/users_hw/hello@@05-Jan.09:16:788 Combination
On Windows systems:
M:\george\users_hw\hello.exe View-extended pathname hello.exe@@21-Dec.16:18.397 VOB-extended pathname, including DO ID M:\george\users_hw\hello.exe@@05-Jan.09:16:788 Combination
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.
- Wink in another view's DO into your view, using a view-extended pathname. The –out option is required in this case.
in a DO, using its DO ID, and saving it under another file name.
cmd-context lsdo hello.exe
- Create a new derived object and promote it to VOB storage.
in derived object main.obj and all of its siblings.
cmd-context lsdo main.obj
cmd-context winkin –siblings main.obj@@04-Sep.16: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”
wink in derived object main.exe and all of its subtargets.
cmd-context winkin –recurse main@@04-Sep.16: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:
- List the DOs that would be winked in during a recursive winkin of derived object main.exe.
- Recursively wink in derived object main.exe and all of its subtargets, preserving the unshared DOs in your view.