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

P4 Visual Client (P4V) Documentation | 2025.3

# Resolve stream specs

There are three types of resolves for stream specs:

- To resolve a stream spec that another user edited - see Resolve a stream spec that another user edited
- To resolve a `noinherit` stream spec that is merging in changes from its parent stream spec - see Resolve a stream spec merge from parent
- To resolve a `noinherit` stream spec that is merging in changes from its parent stream spec while you are editing the child stream spec - see Resolve a stream spec merge while editing the child stream spec

## Resolve a stream spec that another user edited

Conflicts occur when you attempt to submit a stream spec that another user has edited and submitted while you had the stream spec checked out. When a conflict occurs, P4 Server schedules the stream spec for resolve. To indicate that a stream needs resolving, P4V displays a question mark badge .

When you attempt to submit a changelist containing a stream spec that must be resolved, P4V displays an error message. You must resolve the changes before you can proceed.

1. In the Pending tab, right-click the stream and select Resolve.

   The Resolve Stream dialog box box opens.

2. Select the resolve method:

   - Interactive: Default. Opens the Stream: Edit window. You can view diffs in a separate window and, if needed, manually make additional changes.
   - Public (Source): Ignores any edits made in the checked out stream spec and takes all changes made in the public stream spec.
   - Checked Out (Target): Accepts all edits made in the checked out stream spec and ignores any changes made in the public stream spec.
   - Combine: Combines the path fields of the public and checked out stream specs and accepts changes made to all other fields in the checked out stream spec.

3. Optionally, from the Diff list, select which versions of the stream spec you want to compare:

   - Base vs Checked Out (Target)
   - Public (Source) vs Checked Out (Target)
   - Base vs Public (Source)

   where:

   - The Base version represents the public have version from which the checked out version is derived.

   - The Public version represents the current public version, or source, which may have changed since the base version was established.

   - The Checked Out version represents a private copy of the base version. As the target version, it now includes the changes you have made.

   P4V displays the versions side by side in P4 Merge.

4. Click Resolve.

5. Submit the changelist. For details, see Edit stream specs.

## Resolve a stream spec merge from parent

If you have a child stream with a ParentView that is `noinherit` and you decide that you want changes that occurred in the parent stream spec to be reflected in your child stream, you can perform a stream spec merge. This might require resolving the differences between the two stream specs.

1. In the Pending tab, right-click the stream and select Resolve.

   The Resolve dialog box opens.

2. Select the resolve method:

   - Interactive: Default. Opens the Stream: Edit window. You can view diffs in a separate window and, if needed, manually make additional changes.
   - Combine: Combines the path fields of the public and checked out streams and accepts changes made to all other fields in the checked out stream.
3. Optionally, from the Diff list, select which versions of the stream you want to compare.

   In this example, `@254` is the changelist number of the version of the parent stream from which you integrated.

You can now click Resolve and submit the changelist. For details, see Edit stream specs

## Resolve a stream spec merge while editing the child stream spec

This scenario is similar to one above except that it occurs while you are editing the child stream spec. In other words, you can have a stream spec open for edit, make changes to it and integrate a parent stream. This allows you to perform a single submit that contains both your changes to the child stream spec and your integration of changes from the parent stream spec.

In this case, you see four options:

In this example, `@158` represents the changelist number of the version of the parent stream spec you are integrating.

- Base vs Public (Source)
- Checked out vs Parent

  where:

  - The Base version represents the public `have` version from which the checked out version is derived.

  - The Public version represents the current public version, or source, which might have changed since the base version was established.

  - The Checked Out version represents a private copy of the base version. As the target version, it now includes the changes you have made.

  - The Parent @changelist-number is the changelist number of the version of the parent stream from which you integrated.

Your search for returned results