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.
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:
- Removes the DO with an operating system command. This deletes the data container from view storage.
- 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:
- (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:
- Promotes the data container from view storage to VOB storage.
- Removes the DO with an operating system command, which deletes the data container from view storage.
- 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.
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