Step 8: Create a mainline stream | Admin
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 work with versioned assets, you must create at least one stream for each depot you create. To start, you will create one mainline stream for the depot you created in the previous step. You can customize your stream workflow later.
Any user with write permissions for a depot can create streams.
-
In P4V, click the + button and select Stream Graph.
The Stream Graph tab opens in the right pane and displays a visual representation of all streams in a specific depot.
-
Right-click anywhere on the Stream Graph tab and choose New Stream.
-
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 can 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>.
-
In the Stream type field, select mainline.
Every stream depot needs a mainline stream before other stream types can be added.
-
In the Depot field, click Browse, select the depot you previously created and click OK.
-
Keep the Parent view as inherit and the Location as the default path.
-
Optionally, enter a Description of the stream.
-
Clear the Create a new workspace to use with this stream checkbox. This allows you to name the workspace. You will create a workspace in a later step.
-
Clear the Populate the mainline stream after it is created check box. This allows you to set up ignored files before the mainline stream is created. You will populate the mainline stream in a later step.
-
Click the Advanced tab.
-
Specify file or folder patterns to exclude from version control in the Ignored field. To learn more, see Ignored files.
Helix Core will check all file or folder names and ignore them if they match lines in this field. 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 # ignores file names ending in .tmp
You can add comments by using the ## prefix.
-
Click OK to create the stream.
Ignored files
When using any version control solution, it is best practice to ignore files that should not be versioned for security or performance reasons. For example:
-
User-specific settings or secret keys are available to all other users on the project. Versioning these files can cause setting conflicts and security issues.
-
Files that are automatically created and updated by a program. They can be regenerated by the program whenever someone opens it, for example, the DerivedDataCache folder used by Unreal Engine
In Helix Core, you can specify ignored paths at the stream level in the Ignored field or by editing an existing stream. This applies the exclusions to all users. Any child streams automatically inherit the same excluded paths.
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. Make sure the file is always included in each user workspace. Some users prefer the flexibility this provides because each user can edit the p4ignore file or add extra files. However, this requires your entire team to be well-trained in 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 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/…
|
If you use Unreal Engine, following is a basic standard set of ignored paths to include at the stream level. The same principles apply to any type of project.
/Saved/...
/Intermediate/...
/DerivedDataCache/...
/FileOpenOrder/...
/obj/...
.pdb
-Debug.*
/.vs/...
.sln
Learn more
Watch the following video to learn more about streams.
What's 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 9: Create a workspace.