pi ip
Commands related to the IP object.
Command Overview
> pi ip -h
Usage: pi ip [-h] SUBCOMMAND ...
Description: Commands related to IP. These subcommands are used to add, edit,
delete and list information about IP.
Optional arguments:
-h, --help Show this help message and exit
Available sub-commands:
SUBCOMMAND
add Create a new IP.
attribute (attr) Commands related to IP, Line or IPV Attributes.
copy (cp) Create a new IP or new Line based on an existing IPV.
delete (del, remove, rm)
Delete an IP or a Line, along with all of its IPVs.
diff Compare two IPVs.
edit Edit an existing IP.
list (ls) List all matching IP.
load Load an IP into a Workspace.
local Create a local copy of an IP.
obliterate Obliterate an existing IP.
properties (prop) Edit the IP/IPV Properties on an existing IP.
publish Publish the given IPV to a IPLM Cache.
refer Switch an IP to refer mode.
rm-from-filelist Remove a file from the filelists of IPVs on a Line.
tree Display the hierarchy of the specified IPV.
usage Report on IPV usage by other IPVs.
More information and documentation available at:
https://help.perforce.com/methodics/
Copyright © 2010-2025 Perforce, Inc.
IP Template
[IP]
# IP Permissions apply
# Name is required
name = newip
# Library is required
library = tutorial
# DM type is required
# One of CONT FS P4 SVN, or any custom DM type
dm_type =
# Host is used for p4 IP only
host =
# Description is optional
description =
# Icon is optional
icon =
# Hooks are optional commands executed when certain events occur. These
# variables can be used as arguments to the hooks :
# $IP : IP name
# $LIB : Library name
# $VER : Version number
# For pre-release hook, the old version number. For post-release
# hook, the new version number.
# $LINE : Line name
# $IPID : Complete IP identifier (shorthand for $LIB.$IP@$VER.$LINE)
# $IP_DIR : IP directory in the workspace
# $ARGS : Any arguments passed to the pi command with the --args argument
# For instance, pi release lib.ip --args [arguments_for_hook]
[HOOKS]
# IP Permissions apply
pre_release =
post_release =
post_load =
post_update =
pre_integrate =
post_integrate =
# ------------------------------------------------------------------------------
[LINE]
# IP Line Permissions apply
# For new IP, line is always TRUNK
line = TRUNK
# Icon is optional
icon =
# ------------------------------------------------------------------------------
[IPV]
# IP Line Permissions apply
# Repo path
repo_path =
# Required
version_message = First version
# Icon is optional
icon =
# Resources are optional
# One resource per line (newlines require a leading space)
resources =
# Private resources are only loaded when this IP is the top level of a Workspace.
# This is useful to prevent subsystem test benches from loading into bigger Workspaces.
private_resources =
# Project properties (project_props) are optional
# One resource per line (newlines require a leading space)
# A property set on a resource in the top IP overrides the same property
# set on the resource itself.
#
# Format: <ip_identifier> [--path <path>] [--mode local|refer|both]
# [--resolve <IPV>] [--unix_group <group>]
# ip_identifier: the resource IP
# These wildcards are allowed in resource names:
# * - refers to all resources. (Default)
# LIB. - refers to all resources belonging to library LIB.
# --path: A relative path in the workspace where the IP is placed in.
# $LIB and $IP are provided as convenience vars with the
# default location in "$LIB.$IP" of the workspace dir.
# ex: --path data - IP directory is renamed to "data"# --path $IP - IP is placed in a top level dir "$IP"# --path dir/$IP - IP is placed in "dir/$IP"# --mode: Makes the IP local only, or refer only. If the mode is unset both
# at the top level and at the resource then the IP can be switched
# between refer and local. The mode "both" can be used at the top
# level to override a mode of refer or local set at a resource level.
# ex: resource IP "SUBSYS" has mode --local set so a workspace with
# SUBSYS at the top is always in local mode
# an IP "TOP" that uses SUBSYS as a resource can override that
# using a mode "both"# --resolve: When a conflict between multiple resources occurs, this
# specifies which one of the resources must be used. The --resolve
# project property can only be applied to the default * group. All
# resolutions must be specified in one single --resolve directive
# eg: --resolve lib1.ip1@1.TRUNK lib2.ip2@ALIAS.LINE ...
# --unix_group: Group owner of the IP directory in the shared area and
# workspaces. eg: --unix_group group1
project_props =