Using the Stream Graph
The Streams tab lists streams while the Stream Graph tab displays a graphical representation of the relationships between parent and child streams in a selected depot.
To display streams in the Streams tab:
- Go to View > Streams to open the Streams tab.
-
Select a display option by clicking the Show streams in List or Tree icon:
- List displays the streams in a flat list.
- Tree (default) displays the streams in a hierarchy, with development streams and release streams listed under mainline streams.
-
Search for streams or restrict the streams that are displayed by using the Filter pane at the top of the tab. You can filter by owner, stream name, parent stream, stream type, and depot.
For more information about filters, see Searching and filtering.
Display streams in the Stream Graph tab
- Go to View > Stream Graph to open the Stream Graph tab.
-
Select a display option by clicking the Show streams in Picker or Filter icon
.
NoteThe View menu also lets you Show Stream Graph As either Picker or Filter.
When you select a stream, it is highlighted in both the left pane's hierarchical view and the right pane's stream graph. You can navigate with either pane, and the two panes remain in sync with each other when you choose a different stream.
You can show or hide the hierarchical list:
Picker with Stream Graph
With Picker, check the checkboxes for the streams you want to see, then click Apply to see those choices in the Stream Graph:
Filter with Stream Graph
With Filter, the Stream Graph tab enables you to search for streams or restrict the streams that are displayed by
using the Filter pane at the top of
the tab. You can filter the streams by Owner
, Type
, Root
, Name
, Parent
, and Depot
.
If you have selected a stream, it is always in the view, whether you zoom out to see more streams, or zoom in to read details. You can also make the Width of streams be Small or Large:
You can show or hide the hierarchical list in the left pane.
Some streams might not match the filter result, but are shown because they are a parent of a stream that does match the filter result. These streams appear grayed out in the hierarchical list and colorless in the Stream Graph:
You can save a filter or apply a filter.
For more information about filters, see Searching and filtering.
Context-menu Show in Stream Graph
To display the parents and children of any stream on the Streams or Stream Graph tab, click the stream, and in the context-menu choose Show in Stream Graph.
A new window displays the stream hierarchy for that stream, so you can compare the two views side-by-side.
Tear off a view to compare side by side
To compare two views side by side, click the "Tear off this view" icon.
A new window opens, and you can reposition it.
Stream Graph display conventions
The Stream Graph provides a graphical view of stream relationships and provides tools and shortcuts for working with streams.
![stream graph](../Resources/Images/p4v-stream-graph-spec-only.png)
If the dm.stream.parentview configurable is set to 1
or 2
, the Copy/Merge Hints
filter can be set to show Files Only, Stream Spec Only, or Files and Stream Spec. Otherwise, the Copy/Merge Hints
filter does not appear and hints are for Files Only.
The graph uses location and color to depict stream types: mainline streams are gray and placed in the middle of the graph, release streams are orange and appear above the mainline, and development streams are blue and appear below.
In the screenshot above,
- the grey band means that dev1 and dev22 have an
inherit
parent view - blue band means rel1, dev2, and dev11 have a
noinherit
parent view.
Status hints between streams tell you which streams have changes to contribute and where the changes can be copied or merged:
Merge hint:
Copy hint:
The status hints are color-coded to indicate whether one or more integrations are pending between the stream and its parent:
- Gray: no merge or copy required
- Green: a merge or copy operation is available
- Because dev11 and rel1 are
noinherit
, the changes to the parent stream are not automatically inherited. Therefore a merge is optional.
- Because dev11 and rel1 are
- Orange: stream must be updated, after which merge or copy is available
The workspace icon indicates the stream you are
currently working in.
You can drag the workspace icon to another stream to switch your workspace to that stream. The Stream field value in the workspace definition changes to the new stream.
Configure the stream graph display
-
In the Stream Graph tab, click the arrow icon
at the top left to open the filter pane.
- From the Depot list, select the depot that contains the streams you want to view.
-
If the depot contains more than one mainline stream, from the Mainline list, select the mainline stream you want displayed in the graph. The field below the list populates with a tree view of the selected stream.
The full depot path appears at the bottom of the filter pane and at the top of the Stream Graph tab, next to the arrow icon.
-
(Optional) To focus on specific child streams, select them in the tree view.
You may need to expand the tree to view the streams you want to select. To access quick filter options, click the filter list
.
TipYou can select multiple streams and then press the Spacebar to select or clear the respective check boxes.
-
Click Apply.
The Stream Graph displays the streams that you specified.
-
To save the Stream graph:
- Click the filter list
and select Save Graph As.
-
In the Add Stream Graph Filter dialog, enter a name for the filter and click OK.
You can now access the filter from the filter list
.
- Click the filter list
- To close the filter pane, click the arrow icon again.
-
(Optional) To view the actual depot location of the selected streams in the Stream Graph, from the Label list, select Stream Root.
The full depot path appears in the stream node for each stream:
This is useful if you have parent streams with child task streams that are located in other depots.
-
(Optional) To change the size of the stream node to accommodate long depot paths, move the Width slider.
-
(Optional) Click the navigator icon
to open the Graph Navigator.
The Graph Navigator allows you to navigate the Stream graph when it is too big to fit into the available display area. In the Graph Navigator window, the red rectangle indicates the portion of the graph that is currently displayed in the Stream graph. You can use your mouse or cursor keys to move the rectangle and shift focus in the Stream graph.
NoteThe navigator icon
is only available if the Stream graph is larger than the display area.
Display stream status
Double-click a stream to view a popup that contains status details:
![stream popup](../Images/p4v-stream-popup.png)
Work in a stream
To work in a stream or switch from one stream to another, do one of the following:
-
In the Streams tab or the Stream Graph, right-click a stream and select Work in this Stream.
- In the Stream Graph, drag the Workspace
icon from your current stream to the one you want to work in.
If your stream preferences are set to use a different workspace and to show an information dialog when switching workspaces, P4V prompts you to switch workspaces or create a new workspace. In this case, click the Create New Workspace button (if you have only one workspace), Switch Workspaces button (if you have two workspaces), or the Select Workspaces button (if you have more than two workspaces) to switch your workspace. If more than one workspace is associated with the stream, the Select Workspace dialog opens, where you can search for and select the workspace you want.
If your preferences are set to use the same workspace when you switch between streams, the workspace view changes to include the stream you are switching to. In other words, the Stream field value in the workspace definition changes to the new stream. When you do this and your Helix server version is 2019.1 or later, then if you have files checked out to:
- The default changelist: P4V shelves them automatically in a numbered changelist with the description "Switched branch shelf" and unshelves them again to the default changelist when you switch back to that stream. However, note that the numbered changelist created for the interim shelf does not get deleted and remains in the system.
- A numbered changelist:P4V prompts you to shelve those files before switching. When you switch back to that stream, those files remain shelved in the numbered changelist. You have to unshelve them manually.
Unrelated streams versus related streams
You can switch from any stream to any stream, and your work-in-progress will always be available when you switch back. This is true whether the streams are related or not, and whether they are in the same depot or not.
Two streams are:
-
related if they share a direct or indirect relationship to the same mainline stream
-
unrelated if they do not share a direct or indirect relationship to the same mainline stream
In the diagram above, Mainline
and MainShared
are unrelated streams in the same depot.
The four possible scenarios are that you switch to a:
-
related stream in the same depot, such as from
patch 1.1
toRel 2.0
-
related stream in a different depot, such as from a task stream to a parent in a different depot
-
unrelated stream in the same depot, such as from
DevNoBin
toServer_dev
-
unrelated stream in a different depot
Branching with Streams
To create a new development or release branch, you create a child stream from a parent. You can also create virtual siblings of your mainline stream by branching.
You can create task streams by creating a child stream from a parent, but you can also create parentless task streams. For more information about how branch a task stream, see Working with Task Streams.
To create a child stream:
- In the Streams tab, right-click the stream and select Create New Stream from 'stream_name'….
-
In the Stream: New dialog, define the new stream.
See Creating streams.
-
Verify that the new stream appears correctly in the stream graph.
If you have specified the stream type correctly, more stable streams are displayed above the parent and less stable streams below the parent.
You can also reparent streams that have already been branched. To reparent a stream, do one of the following:
- In the Stream graph, drag the stream to the new parent stream.
- In the Streams tab (list or tree view) or the Stream Graph Tab, right-click the stream, select Edit Stream 'stream_name' , and enter a new parent in the Stream dialog.
You cannot re-parent task streams.