Step 4: Set up streams | Helix Core Cloud administrators

Streams are the preferred way to handle branching and merging in Helix Core. Streams provide a framework to manage concurrent development and track relationships visually across branches.

To start, you will create one mainline stream, which is the minimum required for each new depot you create. This stream is for the depot you created in the previous step. Later, you can further customize your workflows using streams.

Any user with write permissions for a depot can create streams.

  1. In P4V, choose View > Stream Graph.

    The Stream Graph tab opens in the right pane and displays a visual representation of all streams in a specific depot.

  2. Right-click anywhere on the Stream Graph tab and choose New Stream.

  3. In the Stream: New dialog box, enter a Stream name.

    Establish a stream naming convention for consistency and to make it easier to identify streams in any view. For example, you may want to use a short code for your project, followed by an underscore, followed by a description of the stream type. For example, if the project is named Stellar Plaza, use SP for the short code. The mainline stream will be named SP_main and all other streams in the depot will be named SP_<streamType>.

  4. In the Stream type field, select mainline.

    Every stream depot needs a mainline stream before you can add other stream types.

  5. In the Depot field, click Browse, select the depot you previously created, and click OK.

  6. Keep the Parent view as inherit and the Location as the default path.

  7. Optionally, enter a Description of the stream.

  8. Clear the Create a new workspace to use with this stream and Populate the mainline stream after it is created check boxes.

  9. Click the Advanced tab.

  10. Specify the files to exclude from version control in the Ignored field. To learn more, see Ignored files.

  11. Click OK to create the stream.

Ignored files

When using any version control solution, there are files that should not be versioned for security or performance reasons. For example:

  • User-specific settings or secret keys because they would be available to any other users on the project and may cause a conflict with their own settings.

  • Files that are automatically created and updated by a program so it can function but do not need to be in version control because they can be regenerated by the program whenever someone opens it, such as the DerivedDataCache folder used by Unreal Engine

In Helix Core, you can specify ignored paths to exclude from version control at the stream level. This applies the exclusions to all users. Any child streams automatically inherit the same excluded paths.

Tip

Helix Core also supports ignoring files using a p4ignore file, which is a file stored on each user's computer. A p4ignore file is more powerful than specifying paths to exclude at the stream level, but requires each user to configure their computer to look for the same file and make sure the file is always included in any workspace they are using. Some users prefer the flexibility this provides because each user can edit the ignore file or add extra files, but this requires your entire team to be well-trained about how to use p4ignore files. You can use a combination of specifying ignored paths at the stream level and p4ignore files. To learn more, see P4IGNORE in the Helix Core Command-Line (P4) Reference.

To specify ignored paths when creating or editing a stream, on the Advanced tab, add a line to the Ignored field. Helix Core will check all file or folder names and ignore them if they match lines in the Ignored field.

Tip

To edit an existing stream, right-click it in the Stream Graph and choose Edit Stream.

You can use wildcards at the end of a line:

  • Use ... to match any number of characters in any subfolders.

  • Use * as a recursive wildcard to match any number of characters, but no subfolders

Examples

To ignore: Add this line in the Ignored field:
Files that end in .env, .env
All files in a folder named DerivedDataCache, including subfolders /DerivedDataCache/…
Files in a folder named Intermediate that is in a folder named Build /Build/Intermediate/…

As another example, if you use Unreal Engine, following is a basic standard set of ignored paths you should always include at the stream level. The same principles apply to any type of project.

  • /Saved/...

  • /Intermediate/...

  • /DerivedDataCache/...

  • /FileOpenOrder/...

  • /obj/...

  • .pdb

  • -Debug.*

  • /.vs/...

Learn more

Where to go next

Next, create a workspace that links your computer to the stream you created. Every Helix Core user on your team will create one or more workspaces.

Go to Step 5: Create a workspace | Helix Core Cloud administrators.