Create streams

StreamsClosed 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 depotClosed 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. Here, you specify the stream's lineage, its view, and its expected flow of change.

Rules for the default Parent view

Note

The Parent view field of the Stream: New dialog 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

Tip

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 opens with the Parent view field set to inherit

    Stream: Edit dialog (Basic Settings tab)

    The Set Up New Stream dialog opens and the Parent view field defaults to the appropriate value depending of the value of the configurable and the stream type. (See according to Rules for the default Parent view.)

    The Set Up New Stream dialog 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 opens and the user can modify fields, but 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 specify is used as the name of the folder (under the stream depot folder) in the depot where files in the stream are stored. To override the default folder name, go to the Advanced tab.

  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
      

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 Server generates the viewClosed 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, 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 opens, with all necessary fields pre-populated to work with the current stream.

You can update any of the fields in the Workspace dialog, 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.