The Issue Dependencies Tab
The Issue Dependencies tab contains a hierarchical display of the dependencies of a selected set of issue records — that is, the set of issue records on which the selected records depend.
Note: In this description, "issue record N" is shorthand for "change package of issue record N".
From this tab, you can propagate issues' change packages to other streams, using simple Promote commands and/or the Change Palette. When propagating an issue's change package to another stream, you can choose to propagate the changes in the issue's dependencies, as well.
Opening an Issue Dependencies Tab
In a Stream Issues or Stream Diff (Issues) tab, select one or more issue records in the Issues pane, then click the Show Dependencies toolbar button or invoke the Show Dependencies command from the selection's context menu.
Change Package Dependencies
The concept of a change package depending on another change package (or an issue record depending on another issue record) is complex, utilizing several aspects of AccuRev’s product architecture. But the basic idea is familiar: when you ask for something, you sometimes get more than you asked for.
This Version Browser example shows three sets of changes to an element, each assigned to a different issue record: #2, #4, and #13.
At this point, issue record #13 is active in stream brass_dvt. Promoting that issue record — for example, using the Stream Issues tab — promotes version brass_dvt/6 (real version: brass_dvt_phil/25).
Promoting issue record #13 would give you "more than you asked for": it would automatically promote issue records #2 and #4, as well. We describe this situation by saying that issue record #13 depends on issue records #2 and #4.
In practice, most issue records' change packages contain entries for multiple elements, not a single element. In many cases, the promotion causes issue records #2 and #4 to be "partially in" the destination stream, not "completely in".
The discussion above is conceptual and informal. Here’s a rigorous definition of change package dependency:
Issue A depends on issue B, in the context of a promotion from stream S1 to stream S2, if issue A is active in stream S1 and at least one element meets all the following conditions:
- The element has a change package entry in both issue A and issue B.
- The head version of the element’s entry in issue A is a descendant of the head version in issue B. (That is, the A version contains the changes made in the B version.)
- Stream S2’s version of the element is not either the head version of the element’s entry in issue B or a descendant of it. (That is, the changes made in the B version have not yet been promoted to stream S2.)
The Dependency Context
Note that the definition of change package dependency cites a pair of streams as its context. The Issue Dependencies tab shows dependencies in the context of a promotion ...
- from the stream or workspace on which you opened a Stream Issues tab ...
- to its parent stream.
The Dependency Hierarchy
For each issue record, there is a dependency hierarchy: the issue directly depends on several issues; each of those issues directly depends on several issues; and so on.
The Issue Dependencies tab uses a tree control to represent the dependency hierarchy.
Issue Dependencies Tab Layout
The Issue Dependencies tab layout is similar to that of the Stream Issues tab: two panes, each with its own toolbar. The upper pane is the Issues Pane, and the lower one is the Change Package Contents Pane:
The Issues pane displays the issue records that were selected for the Show Dependencies command.
Note: For each issue record, it displays the fields specified in the Change Package Results section of the Schema Editor's Change Packages tab.
If an issue record has dependencies, a tree control appears, initially in the collapsed state. Color-coding and icon differences indicate dependency-related information about the individual issue records:
As you expand issue records' dependency hierarchies, you may discover that some issue records that you initially selected for the Show Dependencies command also appear as dependencies at lower levels. To help you keep track, color-coding is used at the lower levels:
- Issue records that you initially selected for the Show Dependencies command appear without a tinted background.
- Issue records that you did not initially select appear with a tinted background. These are the "new records" added to the listing by the dependency analysis.
Variations in an issue record's icon provide more information about that issue's dependencies:
- (no sub-icon): the issue has no dependencies in this context.
- (yellow warning sub-icon): all of the issue's dependencies are included in the set you initially selected for the Show Dependencies command (the issues at the top hierarchy level).
- (red warning sub-icon): some of the issue's dependencies are not included in the set you initially selected for the Show Dependencies command.
Change Package Contents Pane
The information displayed in the Change Package Contents pane varies depending on the setting of the dependencies drop-down list.
Toogle between the two settings to display dependencies to and from the issue selected in the upper pane. This changes the information displayed in the bottom pane.
The far right column toggles to display the "Depends On" or "Are Dependent On" issues.
The versions are displayed as follows:
- Show Issue(s) That The Selected Issue Depends On — Displays the versions in those issues that the selected issue depends on.
- Show Issue(s) That Are Dependent On The Selected Issue -- Displays the versions in the selected issue.
Working in the Issues Pane
Use the tree control to navigate the dependency hierarchy of an issue record.
Select one or more issue records, and invoke any of these commands from the selection's context menu:
Open a form on the selected issue record, and display the Changes tab.
Promote each currently-active head version in the issue(s)' change package(s) to the parent stream. That is, if a version listed in the Version column is currently active in the stream from which you invoked the Show Dependencies command, that version is promoted to the parent stream.
Promote Issue(s) with All Dependencies
Similar to Promote Issue(s), but also include the issue records on which the selected issue(s) depend.
Send to Change Palette Issue(s)
Similar to Promote Issue(s), but instead of promoting active versions, invoke the Send to Change Palette command on them.
Send to Change Palette Issue(s) with All Dependencies
Similar to Promote Issue(s) with All Dependencies, but instead of promoting active versions, invoke the Send to Change Palette command on them.
Open another Issue Dependencies tab, with the selected issue records at the top level.
Working in the Change Package Contents Pane
In this pane, you can perform the same operations as in the corresponding pane of a Stream Issues or Stream Diff (Issues) tab.