Resolving stream specs
There are three types of resolves for stream specs:
- To resolve a stream spec that another user edited - see To 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 To 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 To resolve a stream spec merge while editing the child stream spec
To 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, Helix 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.
-
In the Pending tab, right-click the stream and select Resolve.
The Resolve Stream dialog opens.
-
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.
-
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 P4Merge.
- Click Resolve.
-
Submit the changelist. For details, see Editing stream specs.
To 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.
-
In the Pending tab, right-click the stream and select Resolve.
The Resolve dialog opens.
-
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.
- 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 Editing stream specs
To 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 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.
- The Parent @changelist-number is the changelist number of the version of the parent stream from which you integrated.
- The Base version represents the public