p4 client
Create or edit a client workspace specification and its view.
Syntax
p4 client [-f] [-t template] [-T type] [name] p4 client -d [-f [-Fs|-Fd]] name p4 client -o [-t template] [-T type] [name] p4 client -S stream [[-c change] -o] [name] p4 client -s [-f] -S stream [name] p4 client -s [-f] -t template [name] p4 client -i [-f] p4 client -d -f --serverid=X [-Fs] name
Description
A
P4 Server client workspace is a set of files on a user’s machine that mirror
a subset of the files in the depot. More precisely, it is a named mapping
of depot files to workspace files. Use the p4 client
command to create or edit a client workspace specification. Invoking this
command displays a form in which the user enters information so that the P4 Server
can maintain the workspace.
The terms "client, "workspace", "client workspace", and "workspace client" mean the same thing.
The p4 client
command puts the client spec into a
temporary file and invokes the editor configured by the environment
variable P4EDITOR
. For new workspaces, the client name
defaults to the P4CLIENT
environment variable, if set, or to
the current host name. Saving the file and exiting the editor creates or modifies the client
spec.
The client view, which is specified in the
p4 client
form’s View
field, specifies
the mapping between files in the workspace and depot.
The mapping between a client workspace file and a depot file:
- Can specify the same or different relative locations.
- Can specify the same or different names.
- Is typically a many-to-many mapping, such as
path/to/....html path/from/....htm
, where...
is a wildcard and the fourth "." is the literal.
before the file extension. See Wildcards in File specifications.
The new or altered
client specification is stored in the
P4 Server
database (metadata The data stored by P4 Server that describes the file revisions in the depot, where they get their content from (see lazy copy), and the current state of client workspaces, protections, groups, users, labels, streams, and branches. Metadata is stored in the server database and is separate from the archive files that users submit.). The files (versioned files Source files stored in the depot, including one or more revisions to each file. Also known as archive files, archives, and depot files. Versioned files typically use the naming convention 'filename,v' or '1.changelist.gz'.) in the workspace are not touched. The new view does
not take effect until the next p4
sync
.
To submit changes to a stream, you must associate the stream with a
client workspace by using the command p4 client -S stream
clientname
. To change the stream associated with a
workspace, use the command p4 client -s -S stream
clientname
.
About mapping in client workspace views
To exclude matching files, precede the mapping with the - minus sign.
If more than one mapping line refers to the same files, the later mapping line overrides the earlier one.
Map multiple server directories to the same client workspace directory
To map multiple server directories to the same client workspace directory, use the + sign to overlay the later mapping on an earlier one.
//depot/project1/... //bruno-client/project/...
+//depot/project2/... //bruno-client/project/...
If files match both the earlier and later mappings, the file matching the later mapping is used. To learn more, see Map different depot locations to the same workspace location in the P4 CLI Documentation.
Map a server directory to multiple client workspace directories
To map the same server directory to more than one client workspace directory, use the & sign.
//depot/... //bruno-client/...
&//depot/and/tools/... //bruno-client/and/utility1/...
&//depot/and/tools/... //bruno-client/and/utility2/...
Files mapped in this way are read-only. For more details, see Map a single depot path to multiple locations in a workspace in the P4 CLI Documentation.
Form Fields
Field Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Read-only |
The client workspace name, as specified in the When called without a clientname argument, Be aware of the Limitations on characters in filenames and entities. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
The name of the workspace owner. The default owner is the user that created the workspace. The specified owner does not have to be a P4 Server user. You might want to use an arbitrary name if the user does not yet exist, or if you have deleted the user and need a placeholder until you can assign the spec to a new user. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Read-only |
The date the workspace specification was last modified. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Read-only |
The date and time that the workspace was last used in any way. The access time is only valid for the server where the client resides, which is where the client was created or where the client was moved to. This is an issue only in a commit-edge architecture. Reloading a workspace with |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
The name of the workstation on which this workspace resides. If included, operations on this client workspace can be run only from this host. If not set, access is allowed from any host. The hostname must be provided exactly as it appears in the output of This field is meant to prevent accidental misuse of client
workspaces on the wrong machine. Providing a host name does not
guarantee security, because the actual value of the host name can
be overridden with the |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
A textual description of the workspace. The default text is
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, mandatory |
The directory (on the local host) relative to which all the
files in the If you change this setting, you must physically relocate any
files that currently reside there. On Windows client machines,
you can specify the root as |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
Up to two optional alternate client workspace roots. P4 Server
applications use the first of the main and alternate roots that
match the application’s current working directory. Use the This enables users to use the same P4 Server client workspace specification on multiple platforms, even those with different directory naming conventions. If you are using multiple or alternate workspace roots (the
If you are using a Windows directory in any of your workspace
roots, you must specify the Windows directory as your main
workspace root and specify your other workspace roots in the
For example, an engineer building products on multiple platforms
might specify a main client root of
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, mandatory |
A set of switches that control particular workspace options. To learn more, see Options field. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, mandatory |
Options to govern the default behavior of
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, mandatory |
Configure carriage-return/linefeed (CR/LF) conversion. See Processing line endings. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
Associates the workspace with the specified stream. P4 Server generates the view for stream-associated workspaces. You cannot modify that view manually. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
A changelist number that sets a back-in-time view of a stream. When This field is ignored unless the |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional |
If set, restricts usage of the workspace to the named server. If unset, use is allowed on master server and on any replicas of the master other than Edge servers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, multi-line |
Specifies the mappings between files in the depot and files in
the workspace. See Comments are preceded by View: ## Comment line //depot/main/... "//eds_win/c:/Current Rel/..." ## comment appended |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Writable, optional, multi-line |
Restricts access to depot paths to a particular point in time. For example: //depot/path/...@1000 Revisions of the files in the specified path are not visible if they were submitted after the specified changelist number. Files matching a
The names of automatic labels can be used as specifiers in import mappings on stream specs and in the |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Writable, optional |
Specifies the type of client workspace:
ReplicationReplication is supported for the client types that are journaled, checkpointed, and recoverable. Between Commit Servers and Edge Servers, only the client spec is replicated. To learn more, see Setting global client views in Client workspaces and client views.
Converting client typesThe following tables indicates which client types can be converted to another client type.
To learn more, see Client workspace types in the P4 Server Administration Documentation. |
Description: Created by maria
Options
|
Delete the specified client workspace whether or not the workspace is owned by the user. The workspace must be unlocked and must have no opened files or pending changes. The combination of -d with -f allows the P4 Server administrator to delete a locked workspace that is owned by other user. This also reverts any files opened on the workspace. A user with If you try to forcibly delete a client bound to another server,
you need to specify the |
|
Allows the last modification date, which is normally read-only, to be set. Administrators can use the Use of this option requires |
|
Allows the deletion with |
|
Allows the deletion with |
|
Read the client workspace specification from standard input. |
|
Write the client workspace specification to standard output. |
|
When used with |
|
Switch workspace view. To switch the workspace view to a stream,
specify Switching views is not allowed in a client that has opened
files. The |
|
If you try to forcibly delete a client bound to another server,
you need to specify the This variant of the |
|
Associates the workspace with the specified stream, which is used to generate its workspace view. |
|
Copy client workspace clientname's view and options into
the |
|
By default, clients are |
|
See Global options. |
Usage notes
Can File Arguments Use Revision Specifier? | Can File Arguments Use Revision Range? | Minimal Access Level Required | Command Alias |
---|---|---|---|
N/A |
N/A |
|
p4
workspace
|
- Use quotation marks to enclose depot-side or client-side mappings of file or directory names that contain spaces.
- Spaces in workspace names are translated to underscores. For example,
typing the command
p4 client "my workspace"
creates a workspace calledmy_workspace
. - By default, any user can edit any workspace specification with the
p4 client
clientname
command. To prevent this, set thelocked
option and usep4 passwd
to create a password for the workspace owner. -
To specify a workspace on Windows that spans multiple drives, use a
Root:
ofnull
, and specify the drive letters in the workspace view. For instance, the following workspace spec with anull
root maps//depot/main/...
to an area of theC:
drive, and other releases to theD:
drive:CopyClient: eds_win
Owner: edk
Description:
Ed's Windows Workspace
Root: null
Options: nomodtime noclobber
SubmitOptions: submitunchanged
View:
## Comment line
//depot/main/... "//eds_win/c:/Current Release/..."
//depot/rel1.0/... //eds_win/d:/old/rel1.0/... ## Comment appended
//depot/rel2.0/... //eds_win/d:/old/rel2.0/...A comment in the View section has
##
at its beginning.Indent each line under a field, as shown above for Description: and View:
Use lowercase drive letters when specifying workspaces across multiple drives.
Options field
The Options
field contains values separated by
spaces. Each of the options has two possible settings:
Option | Choice | Default |
---|---|---|
|
If If A setting of |
|
[no]altsync
|
If This option can only be changed when the client's have list is empty. See p4 have. |
noaltsync
|
If If |
|
|
|
If The compress option speeds up communications over slow links by reducing the amount of data that has to be transmitted. Over fast links, the compression process itself might consume more time than is saved in transmission. |
|
|
Grant or deny other users permission to edit or delete the
workspace specification. (To make a If |
|
|
For files without the
For files with the Files with the |
Ignored for files with the |
|
If rmdir is set, when a command such as If rmdir is set,
p4 sync might remove your current working directory. If so, change to an existing directory before continuing
with your work. |
|
Processing line endings
The LineEnd
field controls the line-ending character(s)
used for text files in the client workspace. Changing the line end option
does not update the client files until you refresh the client files with
p4 sync -f
.
The LineEnd
field accepts one of five values:
Option | Meaning |
---|---|
|
Use mode native to the client (default) |
|
UNIX-style (and macOS) line endings: |
|
Mac pre-macOS: |
|
Windows- style: |
|
The When you sync your workspace, line endings are set to
The most common use of the The |
Working with streams
Without -s
, the -S stream
option can be
used to create a new client spec dedicated to a stream. If the client
spec already exists, and -S
is used without -s
,
it is ignored. Using -S
sets the client’s
Stream
field. The special syntax -S
//
can be used to set both a
/stream
@changelist
Stream
and
StreamAtChange
at the same time.
The -S stream
option can be used with -o -c
change
to inspect an old stream client view. It yields
the client spec that would have been created for the stream at the moment
the change was recorded.
Working with build servers
A server of type build-server (see p4 help server
)
is a replica that supports build farm integration. The p4
client
command can be used to create or edit client
workspaces on a build-server. Such workspaces can issue the p4 sync
command in addition
to any read-only command supported by the replica. For more information,
run p4 help buildserver
.
When creating or editing a client workspace for a build-server, the
client specified by the optional name
argument, as well as
the client specified by the P4CLIENT
environment variable or
by the global -c client
argument, must not exist, or must be
restricted to this server. This command cannot be used to create or edit
a workspace that is not restricted to this build-server.
Working with read-only clients
Build automation scripts, which routinely create, sync, and tear down
clients, can fragment the db.have
table over time. To avoid
this, you can specify the type readonly
for these clients.
Such clients cannot add, delete, edit, integrate, or submit files, but
this should not be an issue in build scripts.
A readonly client is assigned its own personal db.have
database table, and the location of this table is specified using the
client.readonly.dir
configurable.
To set up a read-only client:
-
Set the
client.readonly.dir
configurable to the directory where the db.* tables for the client should be stored.For example, if you create a read-only client whose name is
myroc
and you setclient.readonly.dir
to/perforce/1
, then syncing files using this client will write to the following database/perforce/1/server.dbs/client/
hashdir
/db.myroc - Set the
Type
field of the client spec toreadonly
.
Including Graph Depot repos in your client
See p4 client (graph).
Examples
|
Edit or create the workspace specification named by the value of
|
|
Create or edit a workspace named |
|
Delete the workspace named |
p4 client -d -f -Fd release1
|
As admin, delete both the workspace named release1 and all of its shelved changes of another user. |
p4 client -o build-client | sed "s/Created by/Created by automated build/" | p4 client -i |
Automate the modification of the Description: field in a client specification. This example uses -o and -i to redirect from standard out to standard in. |
Related commands
To list all workspaces known to the system |
|
To read files from the depot into the workspace |
|
To open new files in the workspace for addition to the depot |
|
To open files in the workspace for edit |
|
To open files in the workspace for deletion |
|
To write changes in workspace files to the depot |
|
Graph depot version | p4 client (graph) |