P4V Documentation | 2025.1

# Create streams

Streams A branch with built-in rules that determine which changes to propagate to files in a stream depot, and in what order. A stream specification defines a stream. A user creates a stream spec by using the 'p4 stream' command or in P4V with File > New Stream. In P4V, stream specs are visible in the Streams Graph and the Streams tab. must be created in a Stream depot A depot used with streams and stream clients. A stream depot has structured branching, unlike the free-form branching of other depot types. See also classic depot and graph depot..

When you create a stream, you specify its properties in the Stream: New dialog box. Here, you specify the stream's lineage, its view, and its expected flow of change.

## Rules for the default Parent view

The `Parent view` field of the Stream: New dialog box is affected by the value of the dm.stream.parentview configurable.

`0` (default) | all streams created with Parent view: `inherit`
`1` | mainline, development, and release streams created with Parent view: `noinherit` other stream types created with Parent view: `inherit`
`2` | release streams created with Parent view: `noinherit` other stream types created with Parent view: `inherit` all streams created with Parent view: `inherit`, except for release streams, which are `noinherit`

At any time, you can Convert the Parent View of a stream.

## Basic Settings

1. Choose File > New > Stream​ or right-click a stream in the Stream Graph and select Create New Stream from '<stream name>'…​.
   The behavior depends on the value of the dm.stream.parentview configurable:

   If set to 0 (default) | If set to 1 or 2
   --- | ---
   The Stream: New dialog box opens with the Parent view field set to `inherit`. | The Set Up New Stream dialog box allows users to change the Parent view field from its default value, such as switching from "inherit" to "noinherit." (See Rules for the default Parent view.) The Set Up New Stream dialog box provides the initial setup of the View fields (Paths, Remapped and Ignored). This is required so that the View fields (Paths, Remapped, Ignored) mirror the parent stream definitions for these View fields. After selecting Set Up New Stream, the Stream: New dialog box opens and the user can modify fields, but location of stream in the depot, stream type, stream parent and parent view are read only. The stream parent and type can be edited after stream creation, but Parent view can only be changed later by using Convert the Parent View of a stream.

2. Specify the name of the stream.

   By default, the name you provide will be used as the name of the folder (within the Stream folder) in the depot where the files in the stream are stored. The Stream name can differ from the Stream folder name, with the Stream name being more user-friendly and shorter.

   When creating a stream of type "main," it does not have a parent stream, and you must first select a depot. After selecting the depot, the Path field will show a placeholder, and you must enter a value in that field.

   When creating a new stream from another stream, for depots with different levels, the Path is automatically filled in; however, you can also edit the Path to direct it to a different location. For more information about levels, see Working with stream depots.

   The Location of stream in the depot is a read-only field that indicates where the stream is situated within the depot.

3. Choose the stream type:

   Stream Type | Description
   --- | ---
   Mainline | The base, trunk, or parent of a stream system.
   Development | For long-term projects and major new features. Has a controlled flow. Can be changed.
   Release | For fixing bugs, testing, and release distribution. Has a controlled flow. Can be changed.
   Virtual | Filtered for a narrower scope and to submit directly to parent.
   Task | For lightweight branches, bug fixes, and new features. Task streams are usually short-lived and only promote edited files to the repository. Branches and integrated files are stored in shadow tables that are removed when the task stream is deleted or unloaded.

4. (Optional) If you require a flow of change that is different from the default for the stream type, enable or disable the corresponding Change propagation option (To parent and From parent).

5. For release and development streams, choose the parent stream. For mainline streams, enter the depot where the mainline will be stored.

6. (Optional) Select whether to Create a workspace for use with this stream..

   If you choose not to create a workspace immediately, you can do so later, when you want to work in the stream.

7. (Optional) Select whether to Branch files from parent on stream creation.

   If you choose not to branch files immediately, you can do so later using the Copy operation.

8. To save your entries, click OK.

## Advanced tab

To edit the view of the child stream, go to the Advanced tab.

- - The Advanced tab options enable you to do the following: Lock the stream settings so that only the owner can edit them. Restrict check-ins to the stream owner. Allow to merge the stream’s content both up and down. Edit the view, which might or might not be inherited from the stream's parent, for the following fields: `Paths`, `Remapped`, and `Ignored`. `Paths`: Change the default locations of files mapped from the depot. `Remapped` (change the default mapping of depot files to the workspace). `Ignored` (Specify file or folder patterns to exclude from the stream). Ignoring a file or folder pattern prevents users from submitting files or folders that follow that pattern, no matter the stream view definition. You can use the Ignored field to ensure that generated files are never checked in, for example. You can enter filenames, filename extensions, or file paths. Separate each with a line break. For example:
        /tmp # ignores files named "tmp"
        /tmp/... # ignores directories named tmp
        .tmp # itnores file names ending in .tmp
Note See Stream path syntax. You can add comments by using the `##` prefix. Mainline, development, and release streams are only visible in the Depot tree pane if the stream is populated. |

## Convert the Parent View of a stream

Although streams of type Task and Virtual can only have Parent View `inherit`, other stream types can be converted from `inherit` to `noinherit`, or from `noinherit` to `inherit` at any time.

This conversion is required so that the View fields (Paths, Remapped, Ignored) mirror the parent stream definitions for these View fields.

In the Stream Graph:

1. Make sure the stream is associated with your current workspace.
2. Make sure the stream is not checked out.
3. Right-click the stream and select `Check Out and Convert Stream` from the context menu:

## Creating stream workspaces

To work in a stream, you must have a workspace for it. Helix Core Server generates the view A description of the relationship between two sets of files. See workspace view, label view, branch view. (mapping of depot locations to client locations) for any stream workspace, but you must initiate the creation of the workspace. You can do so in the following ways:

- When you create a new stream using the Stream dialog box, select the Create a workspace for use with this stream option.

- The first time that you select a stream to work in, you’ll be prompted to create a new workspace.

The Workspace dialog box opens, with all necessary fields pre-populated to work with the current stream.

You can update any of the fields in the Workspace dialog box, except Stream name and Workspace mappings (which can only be changed by updating the stream’s path configuration).

If you want a "back-in-time" view of your stream, you can use the Stream At Change option to sync the stream using the stream’s view as of a specific changelist. When you use the Stream At Change option, you cannot submit changes to the files in the stream. This is so that history remains intact. You can only change workspace files at the head revision.

Your search for returned results