The rmdo command deletes one or more derived objects (DOs). Use rmdo to remove DOs (for example, damaged DOs or DOs that were built incorrectly) so that other users do not use them inadvertently.
Note: This command does not apply to snapshot views.
The details of the removal process depend on the kind of DO (use lsdo –long to determine the kind of DO):
a shared derived object whose data container is in VOB storage, rmdo deletes
the entry in the VOB database and also deletes the data container file from
one of the VOB's DO storage pools.
Caution: If you need to remove a shared DO, use lsdo –long to identify the views that reference the DO. Ask the owner of each view to remove the DO from the view with an operating system command or by running make clean or an equivalent command. If the DO is not removed from the referencing views before you use rmdo, error messages appear. For example, when users try to access the DO from the referencing views, the view_server logs VOB warnings. Also, you may see INTERNAL ERROR messages in the ClearCase error_log file; these messages are generated when clearmake or an OS-level command tries to access the DO. The derived object's name is removed from the directory by the OS-level access; thus, subsequent accesses return not found errors.
- For an unshared derived object whose data container is in view-private storage, rmdo deletes the entry from the VOB database, but does not delete the data container from view storage. The data container is an ordinary file that can still be listed, executed, and so on, but it cannot be a candidate for configuration lookup. The ls –long command lists it with a [no config record] annotation. To delete the data file, use an operating system command.
- For a nonshareable derived object, which does not have an entry in the VOB database, rmdo converts the DO into an ordinary view-private file. To delete the file, use an operating system command.
In each case, rmdo also deletes the associated configuration record if it is no longer needed. Both of the following conditions must be true:
- No other sibling DO (created in the same build script execution) still exists.
- The DO is not a build dependency (subtarget) of another DO that still exists.
rmdo does not delete DO versions. To delete a DO that has been checked in as a version of an element, use rmver.
Scrubbing of Derived Objects
ClearCase includes a utility, scrubber, that deletes shareable DOs. scrubber deletes the entries in the VOB database and (for shared DOs) the data containers in the VOB's storage pools. By default, the ClearCase scheduler runs scrubber periodically. See the schedule reference page for information on describing and changing scheduled jobs.
Each DO pool has scrubbing parameters, which you can modify with the mkpool –update command.
You must have one of the following identities:
To delete a shared DO, you must have one of the following identities:
An error occurs if one or more of these objects are locked: VOB, pool.
(Replicated VOBs only) No mastership restrictions.
OPTIONS AND ARGUMENTS
Specifying Criteria for Deleting Derived Objects
- Deletes at most one DO for each file name specified
with command arguments. A file name with a DO ID (for example, hello.o@@24–Mar.11:32.412)
specifies exactly which DO to delete. A standard or view-extended pathname
specifies the DO that appears in the view.
To determine the DO IDs of derived objects, use lsdo.
- Deletes all DOs at a given pathname, regardless
of the view in which they were created or appear.???
- Similar to –all, but
deletes only those DOs with zero reference counts.
- -bef·ore date-time, –sin·ce date-time
- Deletes DOs at the specified pathname that were created before or since
the specified date and time.
The date-time argument can have any of the following formats:
date.time | date | time |now where:
date := day-of-week | long-date time := h[h]:m[m][:s[s]] [UTC [ [ + | - ]h[h][:m[m] ] ] ] day-of-week := today |yesterday |Sunday | ... |Saturday |Sun | ... |Sat long-date := d[d]–month[–[yy]yy] month := January |... |December |Jan |... |Dec
Specify time in 24-hour format, relative to the local time zone. If you omit the time, the default value is 00:00:00. If you omit date, the default is today. If you omit the century, year, or a specific date, the most recent one is used. Specify UTC if you want to resolve the time to the same moment in time regardless of time zone. Use the plus (+) or minus (-) operator to specify a positive or negative offset to the UTC time. If you specify UTC without hour or minute offsets, Greenwich Mean Time (GMT) is used. (Dates before January 1, 1970 Universal Coordinated Time (UTC) are invalid.)
Specifying Derived Objects
- With –all or –zero,
the default is to list all DOs in the current working directory. If you do
not specify one of these options, you must supply at least one argument.
- do-pname ...
- Pathnames of one or more individual DOs. A
name with a DO ID, such as foo@@10-Nov.10:14.27672, specifies
a particular DO, irrespective of view. An operating system pathname or view-extended
pathname specifies the DO that appears in a view.
- pname ...
- (use with –all or –zero) One or more standard or view-extended pathnames, each of which can name a file or directory:
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.
- Delete the derived object hello.obj@@24-Mar.11:32.412.
- Delete all derived objects named hello in the current working directory.
all zero-referenced derived objects in the hworld directory.
cmd-context rmdo –zero hworld
Removed derived object "hworld/hello.o@@23-Mar.20:42.373".
Removed derived object "hworld/hello.o@@23-Mar.20:36.228".
Removed derived object "hworld/hello@@23-Mar.20:42.382".
Removed derived object "hworld/hello@@23-Mar.20:36.234".
Removed derived object "hworld/util.o@@23-Mar.20:42.376".
Removed derived object "hworld/util.o@@23-Mar.20:36.231".