Workspace Hierarchy
Each IPV in the workspace must be connected through the resources field of a higher level IPV in the workspace up to the top IP that was used to create the workspace via the pi ip load command. When a workspace is updated or edited new IPVs and their sub-hierarchies can be introduced or removed from the original workspace, which changes the IPV hierarchy in the workspace versus the hierarchy that was originally loaded.
Normally it isn't necessary to focus too closely on the IP Hierarchy underlying the workspace, but in some cases it is helpful to directly view the state of the workspace from an IP Hierarchy perspective.
Workspace Hierarchy Overview
The IP Hierarchy in any given workspace will frequently be different than the IP Hierarchy of the release from which the workspace was originally created. Workspace edits, updates, and new releases of the top or sub IPs in the workspace can all result in a new workspace hierarchy.
An example Workspace IP Hierarchy is shown below.
> pi ws tree tutorial.tutorial@6.TRUNK ├─ ARM.cortex@1.TRUNK ├─ tutorial.CADenv@GOLD.TRUNK [@1] ├─ tutorial.digital_top@2.TRUNK │ ├─ tutorial.aes512@1.TRUNK │ ├─ tutorial.clk_mux@1.TRUNK │ │ └─ tutorial.rxtx@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.cpu@LATEST.TRUNK [@3] │ │ ├─ tutorial.bist_sram@1.TRUNK │ │ │ └─ tutorial.gen_dig@1.TRUNK │ │ ├─ tutorial.gen_dig@1.TRUNK │ │ └─ tutorial.proj_tech@1.TRUNK │ ├─ tutorial.dbuf@1.TRUNK │ │ ├─ tutorial.bist_sram@1.TRUNK │ │ │ └─ tutorial.gen_dig@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.events_if@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.rxtx@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.sys_bus@1.TRUNK │ │ ├─ tutorial.gen_dig@1.TRUNK │ │ └─ tutorial.rxtx@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.t0@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.t1@1.TRUNK │ │ ├─ tutorial.bist_sram@1.TRUNK │ │ │ └─ tutorial.gen_dig@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ ├─ tutorial.timers@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK │ └─ tutorial.tool_cert@LATEST.TRUNK [@0] │ └─ certification.ibm_rqm@0.RQM_6_0_5 ├─ tutorial.fusa@LATEST.TRUNK [@0] │ ├─ tutorial.tutorial_IEC61508@1.TRUNK │ └─ tutorial.tutorial_ISO26262@1.TRUNK ├─ tutorial.padring@3.TRUNK │ ├─ tutorial.MS90G@1.TRUNK │ ├─ tutorial.io5v@1.TRUNK │ └─ tutorial.io_tsmc18@1.TRUNK └─ tutorial.verif_config@1.TRUNK
Viewing Workspace IP Hierarchy on IPLM CLI
The current Workspace IP Hierarchy can be reported using the 'pi ws tree' command.
Command Line
The Workspace IP Hierarchy can be viewed in IPLM CLI using the 'pi ws tree' command.
> pi ws tree -h Usage: pi workspace tree [-h] [--format {tree,json}] [--wsdir WSDIR | --id uuid] [--list-new] [identifier] Description: Display the hierarchy of the specified IPV. Positional arguments: identifier Optional Identifier of the IPV. Default is the workspace top IPV Optional arguments: --format {tree,json} Return the results in the specified format. Default is tree. --id uuid, -id uuid UUID of the Workspace to be used. --list-new For each resource, list aliased IPVs newer than the version used in the workspace tree. --wsdir WSDIR, -ws WSDIR The Workspace directory. If not specified, the current directory should be a Workspace directory. -h, --help Show this help message and exit
Configuring the Output Format
Perforce IPLM can display the tree output in different formats
Command Option | Format | Description |
---|---|---|
--format | tree | The default format option, a hierarchical display of the workspace hierarchy in tree format. |
json | Display the workspace tree in json format. Note that the Perforce IPLM API should be used for scripting purposes. |
Choosing the Workspace tree to display
If the command is run from inside a workspace directory, the current workspace is assumed. From outside a workspace, a particular workspace can be selected by UUID or directory.
Command Option | Description |
---|---|
--id uuid | The uuid of the workspace for which the tree should be displayed |
--wsdir WSDIR | The directory (WSDIR) of the workspace for which the tree should be displayed |
Finding new Resource Versions
Command Option | Description |
---|---|
--list-new |
Display a focused version of the workspace IPV hierarchy showing aliased IPV resources that are newer than the versions in the released hierarchy. |
Pi WS Tree --list-new Example
'pi ws tree --list-new' output:
> pi ws tree --list-new tutorial.tutorial@6.TRUNK ├─ ARM.cortex@1.TRUNK → @5 [GOLD], @6 [LATEST] ├─ tutorial.CADenv@GOLD.TRUNK [@1] → @3 [LATEST] ├─ tutorial.digital_top@2.TRUNK │ ├─ tutorial.clk_mux@1.TRUNK │ │ └─ tutorial.rxtx@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] │ ├─ tutorial.cpu@LATEST.TRUNK [@3] │ │ ├─ tutorial.bist_sram@1.TRUNK │ │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] │ ├─ tutorial.dbuf@1.TRUNK │ │ ├─ tutorial.bist_sram@1.TRUNK │ │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] │ ├─ tutorial.events_if@1.TRUNK │ │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] │ └─ tutorial.flash@1.TRUNK │ └─ tutorial.flash_if@1.TRUNK → @2 [LATEST] │ └─ tutorial.gen_dig@1.TRUNK → @2 [LATEST] ├─ tutorial.padring@3.TRUNK → @6 [LATEST] │ ├─ tutorial.io5v@1.TRUNK → @5 [LATEST] │ └─ tutorial.io_tsmc18@1.TRUNK → @5 [LATEST] └─ tutorial.verif_config@1.TRUNK → @5 [LATEST]
The --list-new argument of 'pi ws tree' displays aliased versions of workspace IP resources that are at a later version than those currently in the workspace. This is a key method to find new versions that might be candidates for inclusion in new releases of the top level tree. These new, aliased versions of existing resources can either be added directly to the tree via server side edit commands (via IPLM Web or IPLM CLI), updated into workspaces or edited into the workspace, and then verified before making a new release.
This command is frequently used by Integrators and users looking for the latest qualified versions of the IPVs in their workspaces.