Using Perforce P4 Server streams with Perforce IPLM
Perforce IPLM support for P4 stream DM type IPs enables IPLM users to benefit from the advanced branching and merging capabilities of P4 Server streams. Both P4 and P4 stream type IPVs benefit from P4 Server's superior data management. Because the underlying P4Stream workspace functionality is handled somewhat differently than standard P4, a separate IP DM type is required for streams.
Parent and child streams which are tracked using releases in Perforce IPLM should be mapped to separate Perforce IPLM lines on the same IP. It is not necessary to map ALL related streams to Perforce IPLM lines, only the streams that are tracked using IPLM releases need their own lines.
Branching and merging is most useful for text based managed data that can be easily merged. It is typically less applicable to binary data.
Stream type support
Perforce P4 streams define each stream with a type. Three of the more stable types, which manage their own data and are long-lived, are supported in IPLM:
-
Development
-
Mainline
-
Release
The other stream types are not supported in IPLM:
-
Task
-
Virtual
-
Sparse (sparsedev and sparserel)
In addition, Perforce IPLM does not support stream components functionality within P4.
Task streams are short-lived and dedicated to a specific task. Virtual streams do not manage their own data, but rather filter the data of another stream. If IPs are defined with stream types of either Task or Virtual, they may be loaded into a workspace but it is not possible to release them from a workspace, and the user will receive warnings to modify the stream type to one of the supported types.
Perforce IPLM workspaces and streams
When P4 stream IPVs are loaded into a workspace, it is possible to switch the streams at the DM level to streams that do not match the IPLM line originally loaded into the workspace. To release or update these streams with IPLM, they must be switched back to the streams that match the IPLM lines loaded in the workspace.
In contrast to the (non-stream) Perforce integration in Perforce IPLM, when P4Stream IPVs are loaded into the workspace, they each get their own individual P4 client, because streams expect to manage their own client directly.
At the DM level, streams support including other streams from the stream definition through either imports or components (which must be specially enabled). Including streams from within other streams in this way is not supported in IPLM. Similarly to unsupported stream types, streams with component or include statements can be loaded into an IPLM workspace, however releasing IPs based on these streams will be blocked until the includes and components are removed from the stream specification.
P4Stream releases
IPs with the P4Stream DM type capture their file content upon release from a workspace with a filelist, in the same way standard P4 releases do. Because P4Stream IPs also rely on the state of the stream spec to fully reproduce their release, they also capture the changelist corresponding to the current version of the stream spec at the time the release is made.
Client-side environment variables
On the client-side, several environment variables are used to configure streams under Helix IPLM (these are the same as are used with non-streams P4). See Configuring P4 Server.