view_scrubber

Remove derived object data containers from dynamic view storage

Applicability

Product

Command type

VersionVault

command

Platform

UNIX®

Linux®

Windows®

Synopsis

view_scrubber [ –p | -a ] [ –k ] [ –n ] [ DO-pname ... ]

Description

The view_scrubber program cleans a view's private storage area by removing data containers for derived objects (DOs). On Windows® systems, view_scrubber scrubs only the files that are piped to its stdin stream. On UNIX® and Linux® systems, the most common way to run the view_scrubber is indirectly, by running the view_scrubber.sh script supplied with VersionVault.

Restriction: This command does not apply to snapshot views.
Important: This command modifies the way in which view-resident objects are combined with VOB-resident objects to produce a virtual workspace. To avoid errors, make sure that no application or development tool is using the view's files when this command is executed.

Scrubbing is useful in the situations described in the following sections.

Cleaning up after a winkin

When a clearmake or omake build winks in a shareable DO for the first time, the DO's data container is copied from the private storage area of the view in which it was built to the VOB storage pool. At this point:

  • The view where the DO was originally built continues to use the data container in view storage.
  • Any other view to which the DO is subsequently winked in uses the data container in VOB storage.

Running view_scrubber in the view where the DO was built simplifies the situation. view_scrubber performs the following steps:

  1. Removes the DO with an operating system command. This deletes the data container from view storage.
  2. Winks in the DO to the view, which establishes a link to the data container in VOB storage.

Now, all views that share the DO access the data container in VOB storage, which eliminates the redundant, space-consuming data container in view storage.

Self-winkin

By default, the data container for a nonshareable DO or an unshared DO remains in view storage until the DO is deleted or overwritten. view_scrubber –p transfers the data container to VOB storage, thus freeing space in the view storage area. In essence, this involves winking in the DO to the same view. view_scrubber –p performs the following steps:

  1. (Nonshareable DO only) Converts the DO to a shareable DO by writing information about the DO into the VOB.

    If the DO has any sub-DOs or siblings, view_scrubber –p or view_scrubber –a makes them shareable. view_scrubber –a stops after this step is complete. view_scrubber –p executes the following additional steps:

  2. Promotes the data container from view storage to VOB storage.
  3. Removes the DO with an operating system command, which deletes the data container from view storage.
  4. Winks in the DO to the view, which establishes a link to the data container in VOB storage.

You can also use the winkin command to accomplish this scenario.

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.

Options and arguments

Advertising and promotion

Default
view_scrubber removes view-resident data containers, then restores the derived objects to the view through winkin. Requirement: The derived objects' data containers must already be in VOB storage.
–a
Before performing the default processing described above, writes information about the DO to the VOB to advertise its availability for winkin, but does not copy the DO to the VOB.
–p
Before performing the default processing described earlier, writes information about the DO to the VOB to advertise its availability for winkin, then promotes (copies) the derived objects' data containers from view storage to VOB storage. This removes the requirement that the data containers be in VOB storage. (view_scrubber –p implies execution of view_scrubber –a.)

Error recovery

Default
view_scrubber aborts if it is unable to complete its work on any derived object.
–k
Keeps going, even if one or more derived objects cannot be processed successfully.

No-execute option

Default
view_scrubber performs its work and displays appropriate messages.
–n
Suppresses the actual processing of data containers. view_scrubber displays messages describing the work it would have performed.

Derived objects to process

Default
If you do not specify any DOs as command arguments, view_scrubber reads a one-per-line list of pathnames from stdin, which must be a pipe.
DO-pname ...
One or more standard pathnames of derived objects.

Examples

  • On a UNIX® or Linux® system, make the view to be scrubbed the current working view, and move to the directory of interest. Then scrub DO containers for the entire directory tree, using the script versionvault-home-dir/etc/view_scrubber.sh (which invokes the view_scrubber program).

    % cleartool setview big_view
    % cd /vobs/src
    %versionvault-home-dir /etc/view_scrubber.sh

  • On a Windows® system, make the view to be scrubbed the current working view, and move to the directory of interest. Then scrub DO containers for the entire directory tree, using a pipe.

    C:\> Z: (change to a view drive)
    Z:\>  cd \vob_src\pr1
    Z:\vob_src\pr1> dir /s /b *.obj | view_scrubber

  • On a UNIX® or Linux® system, scrub two DOs, promoting the data containers to VOB storage.

    % versionvault-home-dir/etc/view_scrubber –p /view/cep/vobs/dev/lib/cmd.h \
    /view/smg/vobs/dev/lib/cmd_api.h