Development work involves making changes to elements -- both files and directories. As files get edited in workspaces, new versions get created in workspace streams, and existing versions get promoted to higher-level streams, AccuRev shows you the current status of each element. Keep in mind that the status of an element in your workspace may be different from its status in other workspaces and streams.
An element's file status is indicated by a set of one or more status indicators (or flags), each in the form of a parenthesized word. For example:
(overlap)(kept)(member)
Even though we use the term "file status", each directory element also has a status in each workspace and stream. A subset of the status indicators is used to report directory statuses.
These controls affect the File Browser's display of elements and their file statuses:
Show External Elements (user preference)
Timestamp Optimization (File Browser checkbox)
The following sections detail the AccuRev status indicators, organized by category:
(elink)
The element is an element link. (The link's icon is .)
(slink)
The element is a symbolic link. (The link's icon is .)
(missing-target)
For an element link, the target element is not present in the workspace or stream. This can occur if the target element is removed from the workspace tree by an operating system command. It can also result from an Include from Stream or Exclude command. For a symbolic link, there is no object at the target pathname.
(modified-target)
For an element link, the target element has been modified (either a content change or a namespace change) in the workspace or stream.
(corrupted)
For an element link in a workspace, AccuRev and the operating system disagree on the link target. That is, the target element recorded in the AccuRev repository differs from the target in the operating system’s instantiation of the link in the workspace tree. This can occur if you modify or replace a link using operating system commands instead of AccuRev commands.
A cross-linked element (see (xlinked) below) gets (corrupted) status if AccuRev does not overwrite the element during execution of the Include from Stream command, because the element has (modified) or (kept) status in the workspace. This should not occur during normal operation.
(defunct)
The element has been marked for removal from the workspace or stream with the Defunct command.
Workspace: the element has already been removed from the workspace tree (local disk storage). It will be removed from the workspace stream (in the depot) when you Promote the element to the parent stream.
Dynamic stream: the element will be removed from the stream (in the depot) when you Promote the element to the parent stream.
(external)
(workspace only) The file or directory has not been placed under version control The discipline of keeping track of the changes made over time to a file or directory.. (There's an object in the workspace tree The ordinary directory tree, located in the user's disk storage, in which the user performs development tasks and executes AccuRev commands., but no element A file or directory that is under AccuRev version control. See version. has been created in the workspace stream The private stream that is built into a workspace. All new versions of elements are originally created in workspaces; AccuRev records these versions in workspace streams..)
(excluded)
The element does not appear in the workspace because it has been excluded, using the include/exclude facility. For file elements, it's likely that the exclusion was explicitly set on the directory in which the file resides, or on a higher-level directory that includes the file.
This version of the element appears in the workspace or stream by virtue of a cross-link An include/exclude mode operation ('Include from Stream') that includes an element in a workspace or stream, specifying an alternative backing stream for that element. Cross-linking a directory also cross-links the entire subtree below it. Cross-linked elements have (xlinked) status.(xlinked) status.(Include from Stream command) — either on the element itself or on its parent directory or a higher-level directory.
(missing)
(workspace only) The workspace "should" include a version of this element, but doesn't. This occurs when you delete version-controlled files from the workspace tree using operating system commands, or using the AccuRev Delete command. If an operation causes the target of an element link (element-link element) An element whose contents is a pointer to another element, which must be in the same depot. The target element can be a directory element, a file element, another element link, or a symbolic link. to be removed from a workspace, AccuRev removes the element link, also, causing it to have (missing) status.
Notes (click to view):
Missing elements in a sparse workspace
In a sparse workspace (deprecated; see include/exclude) A workspace in which only a subset of the depot’s elements are loaded., the missing status also applies to elements that are not currently loaded into the workspace. The ability to create a new sparse workspace was disabled in AccuRev Version 3.5; use the include/exclude facility in a new workspace instead.
(no such elem)
Update preview only: The element does not currently exist in your workspace, but will be created if you proceed with the update.
(twin)
The element is one of multiple elements in the workspace that exist at the same pathname. At most one of these elements can be accessed through the pathname; the other(s) can be accessed through their unique element-IDs The unique, immutable integer identifier by which AccuRev tracks the changes to a particular file element or directory element. An element's name or pathname can change, but its element-ID never changes..
(stranded)
The element is active in the workspace or stream, but there currently is no pathname to the element.
See also ...
"Version Control of Namespace-Related Changes" in AccuRev Technical Notes.
(modified)
(workspace only) The file has been modified in the workspace since the most recent Update or Keep. You can control how AccuRev determines whether a file has this status.
(kept)
A new version of the element has been created with Keep, Rename, or Defunct (or the CLI command undefunct) and the file has not subsequently been modified, promoted to the backing stream, or purged (Revert to Backed).
(member)
The element is active An element is said to be active in a workspace or stream if a new version of the element has been created there, and that version has not been either (1) promoted to the parent stream or (2) purged from the workspace or stream. See default group, backed, passive. in the workspace. Commands that create a new version in the workspace or stream also make the element active there (if it isn't already).
(backed)
The version in the workspace stream is the same as the version in the backing stream. And you have not changed the element since the last time you Promote'd it or purged it with Revert to Backed, or since the most recent Update of your workspace.
(stale)
(workspace only) The element needs to be updated, because the version in the backing stream has changed since the workspace's latest Update. And since you have not changed the element in your workspace, it can be safely updated (no unpreserved changes will be overwritten).
(overlap)
The element has changed both in this workspace or stream, and in the parent stream. This indicates that a merge An operation that combines the contents of two versions (contributors) of the same element. To merge the contents of text files, AccuRev uses a '3-way merge' algorithm: it compares the two files line-by-line with a third file, the version that is the closest common ancestor of the other two. Merging of namespace changes also takes into account the closest common ancestor. is required before you can promote The operation (promote command) that transitions a version from being active in one workspace or stream to being active in the parent stream (or some other stream). This operation creates a new virtual version in the parent stream; the virtual version provides an alias for the real version, which was originally created in some user’s workspace. See version. your changes to the parent stream. Elements with this status appear with a yellow highlight.
(underlap)
The element has changed both in this workspace or stream, and in the parent stream -- but the parent stream already contains the changes in this workspace or stream. In many cases, it is most appropriate to use Revert to Backed to remove your changes from this workspace stream. [note ] In other cases, you can merge and promote The operation (promote command) that transitions a version from being active in one workspace or stream to being active in the parent stream (or some other stream). This operation creates a new virtual version in the parent stream; the virtual version provides an alias for the real version, which was originally created in some user’s workspace. See version., just as with an (overlap)-status element.
This diagram shows many of the file statuses, illustrating how an element's changing status indicates its development progress. This diagram suggests that as more work is performed on an element, it "rises to a higher level" of development. (That's the idea behind having a command named "promote".) The diagram also depicts the fact that AccuRev tracks changes to an element in two "dimensions":
It records changes made by AccuRev commands as new versions in the depot.
It detects that a file's contents have changed at the operating system level.
This diagram captures the following facts:
Before you start working on an element, it's unchanged along both the AccuRev dimension and the operating-system dimension. Its status is (backed).
When you modify the contents of a file, it changes along the operating-system dimension only, and becomes (modified).
The following involve changes along the AccuRev dimension. This makes the element active in the workspace, so its status indicates that it is a (member) of the default group.
When you Keep a file that you've modified, its status becomes (kept).
An element can also achieve (kept) status through a namespace change -- Rename or Defunct command. This is a change along both the AccuRev and operating-system dimensions. [note ]
The Anchor command change a file along the AccuRev dimension only. The file's status becomes (member).
You can create any number of intermediate versions of a file in the workspace, by repeatedly modifying the file then Keep'ing it. Throughout this process, the file remains a (member) of the workspace's default group. In addition, its status toggles between (kept) and (modified).
You can Promote an element whose status is (kept). This returns the element's status to (backed) -- the workspace now uses the newly promoted version in the backing stream.
See Also ...