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 |
---|---|
ClearCase® |
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.
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.
Options and Arguments
Listing results instead of performing the winkin
- Default
- The listed derived objects are winked in.
- 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.ocmd-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"