Previous Table of Contents Index Next
Perforce 2012.2: Command Reference



p4 client
Synopsis
Create or edit a client workspace specification and its view.
Syntax
p4 [g-opts] client [-f] [-t template] [clientname]
p4 [g-opts] client -o [-t template] [clientname]
p4 [g-opts] client -d [-f] clientname
p4 [g-opts] client -s [-S stream | -t clientname] clientname
p4 [g-opts] client -S stream [[-c change -o] clientname
p4 [g-opts] client -i [-f]
Description
A Perforce client workspace is a set of files on a user's machine that mirror a subset of the files in the depot. The p4 client command is used to create or edit a client workspace specification; invoking this command displays a form in which the user enters the information required by Perforce to maintain the workspace.
Although there is always a one-to-one mapping between a client workspace file and a depot file, these files do not need to be stored at the same relative locations, nor must they have the same names. The client view, which is specified in the p4 client form's View: field, specifies how files in the workspace are mapped to the depot, and vice-versa.
When called without a clientname argument, p4 client operates on the workspace specified by the P4CLIENT environment variable or one of its equivalents. If called with a clientname argument on a locked workspace, the workspace specification is read-only.
When p4 client completes, the new or altered workspace specification is stored within the Perforce database; the files in the workspace are not touched. The new view doesn't take effect until the next p4 sync.
To submit changes to a stream, you must use a workspace associated with the stream. To create a stream-associated workspace, issue the p4 client -S stream clientname. To change the stream associated with a workspace, issue the p4 client -s -S stream clientname.
The command p4 workspace is an alias for p4 client.
Form Fields
The client workspace name, as specified in the P4CLIENT environment variable or its equivalents.
The Perforce user name of the user who owns the workspace. The default is the user who created the workspace.
The date and time that the workspace was last used in any way. (Note: Reloading a workspace with p4 reload does not affect the access time.)
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.
The hostname must be provided exactly as it appears in the output of p4 info when run from that host.
This field is meant to prevent accidental misuse of client workspaces on the wrong machine. It doesn't provide security, since the actual value of the host name can be overridden with the -H flag to any p4 command, or with the P4HOST environment variable. For a similar mechanism that does provide security, use the IP address restriction feature of p4 protect.
Writable, optional
Writable, mandatory
The directory (on the local host) relative to which all the files in the View: are specified. The default is the current working directory.
Writable, optional
Perforce applications use the first of the main and alternate roots to match the application's current working directory.
This enables users to use the same Perforce client workspace specification on multiple platforms, even those with different directory naming conventions.
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 AltRoots: field.
For example, an engineer building products on multiple platforms might specify a main client root of C:\Projects\Build for Windows builds, and an alternate root of /staff/userid/projects/build for any work on UNIX builds.
Writable, mandatory
A set of seven switches that control particular workspace options. See the Usage Notes, below, for a listing of these options.
Writable, mandatory
All open files (with or without changes) are sub­mitted to the depot. This is the default behavior of Perforce.
All open files (with or without changes) are sub­mitted to the depot, and all files are automatically reopened in the default changelist.
Only those files with content or type changes are submitted to the depot. Unchanged files are reverted.
Only those files with content or type changes are submitted to the depot and reopened in the default changelist. Unchanged files are reverted and not reopened in the default changelist.
Only those files with content or type changes are submitted to the depot. Any unchanged files are moved to the default changelist.
Only those files with content or type changes are submitted to the depot. Unchanged files are moved to the default changelist, and changed files are reopened in the default changelist. This option is similar to submitunchanged+reopen, except that no unchanged files are submitted to the depot.
Writable, mandatory
Configure carriage-return/linefeed (CR/LF) conversion. See the Usage Notes, below, for a listing of these options.
Writable, optional
Associates the workspace with the specified stream. Perforce generates the view for stream-associated workspaces: you cannot modify it manually.
Writable, optional
When StreamAtChange is set, running p4 sync (when called with no arguments) updates the workspace to files at this changelist revision, instead of the head revision. You cannot submit changes (p4 submit returns an error) when StreamAtChange is set, because the workspace view no longer reflects the current stream inheritance.
This field is ignored unless the Stream field is also set to a valid stream.
Writable, optional
If set, restricts usage of the workspace to the named server. If unset, this workspace may be used on any server.
Writable, multi-line
Specifies the mappings between files in the depot and files in the workspace. See Views for more information.
Options
-d clientname
Delete the specified client workspace if it is unlocked, whether or not the workspace is owned by the user. (The -f flag permits Perforce administrators to delete locked workspaces owned by other users.)
Allows the last modification date, which is normally read-only, to be set. Administrators can use the -f flag to delete or modify locked workspaces owned by other users.
-o -c change
When used with -S stream, displays the workspace specification that would have been created for a stream at the moment the change was submitted.
Switch workspace view. To switch the workspace view to a stream, specify -S stream. To switch the the view defined for another workspace, specify -t clientname.
-t clientname
Copy client workspace clientname's view and options into the View: and Options: field of this workspace.
Usage Notes
Can File Arguments Use
Revision Specifier?
Spaces in workspace names are translated to underscores. For example, typing the command p4 client "my workspace" creates a workspace called my_workspace.
The Options: field contains six values, separated by spaces. Each of the six options have two possible settings; the following table provides the option values and their meanings:
If allwrite is set, this option overrides noclobber.
A setting of allwrite leaves unopened files writable by the current user; it does not set filesystem permissions to ensure writability by any user of a multiuser system.
If set, a p4 sync overwrites ("clobbers") writable-but-unopened files in the workspace that have the same name as the newly-synced files.
If allwrite is set, clobber is implied; even if present, the noclobber option is ignored.
If set, the data stream between the user's workstation and the Perforce service is compressed.
Grant or deny other users permission to edit or delete the workspace specification (To make a locked workspace truly effective, the workspace's owner's password must be set with p4 passwd.)
If locked, only the owner is able to use or edit the workspace specification. Perforce administrators can override the lock by using the -f (force) flag with p4 client.
For files without the +m (modtime) file type modifier:
For Perforce 99.2 or earlier, if modtime is set, the modification date (on the local filesystem) of a newly synced file is the date and time on the machine on which the Perforce service is hosted when the file was submitted to the depot.
For Perforce 2000.1 level or later, if modtime is set, the modification date (on the local filesystem) of a newly synced file is the datestamp on the file when the file was last modified.
If nomodtime is set, the modification date is the date and time of sync, regardless of version.
For files with the +m (modtime) file type modifier:
For Perforce 99.2 or earlier, the +m modifier is ignored, and the behavior of modtime and nomod­time is as documented above.
For Perforce 2000.1 or higher, the modification date (on the local filesystem) of a newly synced file is the datestamp on the file when the file was submit­ted to the depot, regardless of the setting of mod­time or nomodtime on the client.
nomodtime
(i.e. date and time of sync) for most files.
Ignored for files with the +m file type modifier.
If set, p4 sync deletes empty directories in a workspace if all files in the directory have been removed.
By default, any user can edit any workspace specification with p4 client -c clientname. To prevent this from happening, set the locked option and use p4 passwd to create a password for the workspace owner.
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 may consume more time than is saved in transmission. In general, compress should be set for line speeds under T1, and should be left unset otherwise.
The LineEnd: field controls the line-ending character(s) used for text files in the client workspace.
The LineEnd: option was introduced in Perforce 2001.1 and renders the old convention of specifying crlf or nocrlf in the Options: field obsolete.
The behavior of the mutually-contradictory combination of LineEnd: win and Options: crlf is undefined.
The LineEnd: field accepts one of five values:
UNIX-style (and Mac OS X) line endings: LF
The share option normalizes mixed line-endings into UNIX line-end format. The share option does not affect files already synced into a workspace; however, when files are submitted to the depot, the share option converts all Windows-style CR/LF line-endings and all Mac-style CR line-endings to the UNIX-style LF, leaving lone LFs untouched.
When you sync your workspace, line endings are set to LF. If you edit the file on a Windows machine, and your editor inserts CRs before each LF, the extra CRs do not appear in the archive file.
The most common use of the share option is for users of Windows workstations who mount their UNIX home directories as network drives; if you sync files from UNIX, but edit the files on a Windows machine.
For more information about how Perforce uses the line-ending settings, see "CR/LF Issues and Text Line-endings" in the Perforce knowledge base:
http://kb.perforce.com/article/63
By default, if a directory in the client workspace is empty, (for instance, because all files in the depot mapped to that directory have been deleted since the last sync), a p4 sync operation will still leave the directory intact. If you use the rmdir option, however, p4 sync deletes the empty directories in the workspace.
If the rmdir option is active, a p4 sync operation may sometimes remove your current working directory. If this happens, just change to an existing directory before continuing on with your work.
Files with the modtime (+m) type are primarily intended for use by developers who need to preserve original timestamps on files. The use of +m in a file type overrides the workspace's modtime or nomodtime setting. For a more complete discussion of the +m modifier, see the File Types section.
If you are using multiple or alternate workspace roots (the AltRoots: field), you can always tell which root is in effect by looking at the Client root: reported by p4 info.
To specify a workspace on Windows that spans multiple drives, use a Root: of null, and specify the drive letters in the workspace view. For instance, the following workspace spec with a null root maps //depot/main/... to an area of the C: drive, and other releases to the D: drive:
Client: eds_win
Owner:  edk
Description:
        Ed's Windows Workspace
Root:   null
Options:        nomodtime noclobber
SubmitOptions:  submitunchanged
View:
        //depot/main/...     "//eds_win/c:/Current Release/..."
        //depot/rel1.0/...   //eds_win/d:/old/rel1.0/...
        //depot/rel2.0/...   //eds_win/d:/old/rel2.0/...
Use lowercase drive letters when specifying workspaces across multiple drives.
Examples
Create or edit a workspace named joe, opening the form with the field values and workspace options in the workspace named sue as defaults.
Related Commands


Previous Table of Contents Index Next

Perforce 2012.2: Command Reference
Copyright 1999-2012 Perforce Software.