Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 CLI Documentation | 2025.2

# Manage workspaces

This section discusses various approaches to managing your stream workspaces.

Using one workspace for multiple streams

When working with multiple streams, you have two choices:

- Switch one workspace between multiple streams; the workspace is appropriately populated whenever you switch from one stream to another. While this requires some extra processing, it is the right choice when you don’t need to work on different streams at the same time and you don’t want to have multiple streams on disk at the same time.

- Establish a distinct workspace for each stream. This is the right choice if you want to move quickly between different streams or if you want to have multiple streams on disk at the same time.

  Note that distinct workspaces must have distinct workspace roots — that is, distinct local folders.

To change the stream associated with a workspace, issue the following command:

    p4 switch streamname

To get a workspace view and a set of files as of a specific changelist, issue the following command:

    p4 switch stream@change

Narrowing the scope of workspaces with virtual streams

For large projects, even consistently-organized streams might not sufficiently restrict workspace views. In large organizations, there are often many groups who are concerned with only a small subset of a project’s files. In classic P4 Server, these users would manually restrict their workspace’s view to include only the desired subset. Streams offer an analog; use a virtual stream as a filter:

For example, if ongoing development work is occurring in an `//Ace/dev` stream:

Copy

    Stream:     //Ace/dev
    Parent:     //Ace/main
    Type:       development
    Paths:
        share ...

Then a user who is working only with the documentation for the product (rather than all of the assets associated with the project) could create a virtual stream that includes only those files under `//Ace/dev/docs/...`, as follows:

Copy

    Stream:     //Ace/devdocs
    Parent:     //Ace/dev
    Type:       virtual
    Paths:
        share docs/...

The user can then can switch his or her workspace to the `devdocs` virtual stream with the following command:

    p4 switch //Ace/devdocs

When using the `devdocs` workspace, the user’s workspace view is automatically updated to include only the material in `//Ace/dev/docs/...` and any changes he or she makes in `//Ace/devdocs` are automatically made directly in the original `//Ace/dev` codeline without the need to manually run `p4 copy` or `p4 merge`.

To learn more, see Virtual streams.

Your search for returned results