Copying IPs
IPVs can be copied to new IPs or new IP Lines. When copied the source of the copy is captured in the new object and can be used to trace the copy history of the object.
Overview
Existing IPs can be copied to new IPs or into new Lines on the same IP. The source of the IP copy can be any release on any line of an existing IP. The metadata associated with the source IP (other than Aliases) is copied to the new IP or Line, including permissions. Perforce
Note: DM level file data is not copied as part of the IPLM IP copy operation. File level data must be copied using DM level commands. In the case of Helix Core-based Perforce (P4)p4 populate
command can be used to copy IP data on the server without requiring a workspace.
The target IP or Line will be created with an @0 release (see IP Versions (Releases) for more information on @0 releases). If the source IPV has a repo_path (is not a container) a new repo_path must be specified for the new target IP or line. Note that when copying to a new IP target, the line must be TRUNK, as the TRUNK line is required for any IP in Helix IPLM.
When IPVs are copied to new lines (IP Lines (Branches)) or entirely New IPs the IPV source of the copy is retained in the newly copied object. This provides traceability of the copy history of any series of IPs.
Permissions considerations
When an IPV is copied to a new IP:
-
Copying an IPV to create a new IP requires Library (read, write), IP read, and Line read to all IPV's direct resources (including private resources).
- The existing permissions on the IP of the source IPV will be set on the newly created destination IP.
- The existing permissions on the Line of the source IPV will be set on the TRUNK Line of the newly created destination IP.
- The user copying the IPV (except if the built in 'admin' user) will be granted read, write, and owner permission on the newly created IP and its TRUNK Line.
Accessing the IP Copy function
IP Copy in IPLM Web
The copy to a new IP function is on the IPV page. Select Copy IPV:
Setting up the Copy
The button brings up the IP copy form. Select the destination IP Library, the new name of the destination IP, the Repo Path, and the Version Message. The Repo Path can be automatically copied from the Source IP using the '(Copy Repo Path from IPv)' link if desired. Note that it must be modified for the new IP once copied.
Once configured, select Create Copy.
IP Copy using CLI
Lines are created from other Lines on a given IP via the pi ip copy
command on the CLI, or by creating a new line on IPLM Web. When a copy results in a new IP being created it is always created with the TRUNK line by default. If for example the IP Line 'LIB.IP@.TRUNK' already exists and we want to create an additional IP Line to use for an external IP Revision called 'REV2' and we decide the @3 version of LIB.IP@.TRUNK (LIB.IP@3.TRUNK) has the metadata we wish to use, we would do the following from the CLI:
> pi ip copy LIB.IP@2.TRUNK LIB.NEWIP --repo-path=//mdx_test/LIB/NEWIP/TRUNK -m "copied to NEWIP"Successfully created new IP Version 'LIB.NEWIP@0.TRUNK'.
Details on the pi ip copy command:
> pi ip cp -h Usage: pi ip copy [-h] [--message MESSAGE] [--repo-path REPO_PATH] source destination Description: Create a new IP or new Line based on an existing IPV. For new IP the Line @.TRUNK is created. For new Line the source IPV and destination Line must belong to the same IP. Copy to new Line of new IP is an error. The destination, either new IP or new Line, cannot already exist. If no Version/Line is specified for source IPV will default to the latest Version of Line @.TRUNK. Positional arguments: source Source IPV destination Destination IP or Line Optional arguments: --message MESSAGE, -m MESSAGE, -d MESSAGE Version message for the initial IPV of the new IP. --repo-path REPO_PATH The repository location of the destination IP which must be specified for all IP except Container IP. -h, --help Show this help message and exit Examples: # create the new IP proj.adc2 based on the latest Version of the Line proj.adc1@.TRUNK and use the repository location //depot/proj/adc2 pi ip copy --repo-path //depot/proj/adc2 proj.adc1 proj.adc2 # create the new Line proj.adc1@.line2 based on the latest Version of the Line proj.adc1@.TRUNK and use the repository location //depot/proj/adc1/line2 pi ip copy --repo-path //depot/proj/adc1/line2 proj.adc1 proj.adc1@.line2
If we do a pi ip list -v on the new IP we see:
> pi ip list -v LIB.NEWIP@0.TRUNK
IP Version LIB.NEWIP@0.TRUNK:
Description - IP
DM type - Perforce (P4)
Host -
Repo Path - //mdx_test/LIB/NEWIP/TRUNK
Resources - LIB.SUBA@1.TRUNK
LIB.SUBB@1.TRUNK
LIB.SUBC@1.TRUNK
Current Aliases - HEAD LATEST
Historic Aliases -
Version Message - copied to NEWIP
IP created on - 2020-04-11 11:09:20 -0700 PDT by admin
Line created on - 2020-04-11 11:09:20 -0700 PDT by admin
IP Version created on - 2020-04-11 11:09:20 -0700 PDT by admin
Project Properties:
* - --mode local --path blocks/$IP
Branching Information:
Source - LIB.IP@2.TRUNK
Labels:
analog
Property Sets:
global:
IP Properties:
target_power - 50.0 mW
target_size - 35.0 sq-mm
IP Version Properties:
coverage - 22.0 % (*)
power - 1.0 mW (*)
regr - 100 /2000 (*)
size - 1.0 sq-mm (*)
Permissions on IP:
Owner - g:tutorial
Write Permissions - g:tutorial
Read Permissions - g:tutorial
Permissions on Line TRUNK:
Owner - g:tutorial
Write Permissions - g:tutorial
Read Permissions - g:tutorial
Hooks:
No Hooks defined.
Found 1 matching object(s).
The resources, properties, and permissions, of the source IPV were copied over to our new IP. In addition Helix IPLM tracks the source of our branch (LIB.IP@2.TRUNK). It is possible to easily display the source of Lines either in PiCLI or in IPLM Web. The copy source can also be displayed by default or as part of a model specification via customizing the 'pi ip list' command. See Listing IPs in the Catalog and Client Configuration for details.