Floating is a StarTeam feature that needs careful management. Floating is a configuration option available for all items on the Configuration tab of the Item Behavior dialog box.
The alternative is a pinned configuration. Items can be pinned to a label, promotion state, or a point of time in the past. The StarTeam field named Configuration Time shows you the configuration of an item. The field is blank when the item is floating. The field contains a date and time if the item is pinned. That date and time may be the time that the view was created, the time the item was shared by a VCM operation, a time selected by a user on the Configuration tab in the Item Behavior dialog box, the time of the promotion state to which the item was pinned, or the time of the label to which the item was pinned.
The effects on an item caused by a floating configuration depend on the item’s behavior, for example if it is an item type that can branch: folder, file, or change request, and on the behavior of the folder in which it resides. The StarTeam field named Branch State shows you whether an item that can branch is a Root, Branched, or Unbranched item.
The following dialog shows that an item is set to branch on change. Its behavior can be changed from this dialog, but “Branch On Change” = yes is the preferred behavior:
If this item’s Branch State had been Root or Branched, the check box would be disabled.
If this item’s Branch State had been Root or Branched, the check box would be disabled.
In general, floating shares are considered bad practice, especially for items that branch (folders, files, and change requests) because synchronization and propagation can happen automatically and may be unwanted.
For floating folders, there are additional consequences:
Notice that floating can occur uni-directionally (parent reference to child reference) or bi-directionally (parent to child and child to parent). Also notice that a floating folder affects what happens to items newly added to it. As a result of floating, the parent and child items can be identical. Actually, they are the same item because no branching has occurred.
When this happens, a View Compare/Merge session reports the difference type Unchanged. This can be surprising if you know that you have changed the item recently, or if you compare labels within a view and see that this particular item has changed since the label was made. Understand that Unchanged can mean Same item in both locations in addition to Unchanged.
While floating is generally considered a bad practice, this feature is allowed because it can be useful in certain circumstances, particularly for items that cannot branch (requirements, tasks, and topics). When items that cannot branch have a pinned (non-floating) configuration, they are also read-only.
Some customers put items that cannot branch in a floating folder so that the can float from one view to another. They also set each item’s configuration to floating so that it can be changed from any view in which it can be seen. Those changes, in turn, can be seen in all views where the item is visible.
VCM has a few of ways of finding floating items. It looks for the following item difference types:
All of these are discussed in the topic Understanding VCM Difference Types. Difference types 1210 and 1230 only occur if the VCM option Fix Floating Child Shares is used in the session. VCM can correct for these differences. When difference type 200 occurs, it results in a Fail condition. To commit the VCM session, a manual change must be made to the floating folder in the target view, followed by a refresh of the view. Then the VCM session must be redone. It might be wise to check other foldersin the problem folder's reference tree. VCM only detects the problem between the two views being compared in the VCM session. There may be other floating references.
VCM has a few of ways of finding floating items It looks for the following item difference types:
All of these are discussed in the topic “Understanding VCM Difference Types”.
Difference types 1210 and 1230 only occur if the VCM option Fix Floating Child Shares is used in the session. VCM can correct for these differences. When difference type 200 occurs, it results in a Fail condition. To commit the VCM session, a manual change must be made to the floating folder in the target view, followed by a refresh of the view. Then the VCM session must be redone. It might be wise to check other folders in the problem folder's reference tree. VCM only detects the problem between the two views being compared in the VCM session. There may be other floating references.