View Types
There are six concrete view types. Aside from the special root view type and one non-derived view type, the rest are derived view types, which subdivide into reference and variant types, each of which have two concrete types.
The abstract and concrete view types are described below.
Root View | A root view is the “main” view automatically created for each project. Initially, it receives the same name as the project, but you can change it. (It is often renamed “Main” to emphasize its role.) When first created, the root view has only a root folder whose name matches the view. It is the only view type that has no parent, it forms the top of the project’s view hierarchy. | ||||||
Non-derived View | This is also called a blank view. Like the main view, it initially has no items except for a root folder. Although a non-derived view has a parent view, it is not derived from that parent, which means it does not inherit the parent view’s items. You can add new items to it, or you can share items from other views into it. A non-derived view can be used for non-lifecycle activities, acting like a “scratch pad” that you build up one item at a time. | ||||||
Derived View | A derived view begins life as a subset or an exact copy of its parent view. One of the parent view’s folders (often the root folder) is chosen as the root folder of the derived view; hence the derived view starts as a window into the artifacts at which it is rooted. What you can do with the artifacts in a derived view depend on whether it is a variant or reference view. | ||||||
Reference View | A reference view is a derived view that is a pure subset of its parent view. A reference view does not have its own items; it uses the same items as its parent view. Consequently, updates made to a reference view (if allowed) are applied to the same items used by the parent view. This also means that reference views never have their own artifact branches; hence reference views are also called
non-branching views. Reference views also do not have their own view labels, they share the same labels as their parents. Reference views are considered lightweight since they do not have their own items. A reference view can be updateable or read-only.
|
||||||
Variant View |
Unlike reference views, a variant view is not a pure subset of its parent view. Although a variant view may initially be created as an exact copy or subset of its parent view, it has its own items. In fact, when a variant view is first created, the parent view’s items (or subset thereof) are shared (copied) to the child view, initially referencing the same artifacts. When new items are added to the child view, they may not be automatically added to the parent view depending on the containing folder’s configuration. Furthermore, since it has its own items, the variant view’s items may be independently configured, which means they could branch. Consequently, variant views are also called branching views. Whether or not a variant view’s items are initially marked branch-on-change (BOC) is the major difference between the variant view subtypes.
|
Of the six StarTeam view types, you will use main views and branch-all views with configured items (not floating items) the most. As detailed in the next section, each project will have only one main view, but you will use branch-all views to support both new development and maintenance activities. Reference views are occasionally used as a way to expose a read-only or updateable subset of its parent while simplifying security management. Blank views are rarely used, and branch-none views are not recommended.