Perforce 2002.1 Command Reference
<< Previous Chapter
Additional Information
Table of Contents
Perforce on the Web
Next Chapter >>
File Specifications

Global Options


Global options for Perforce commands; these options may be supplied on the command line before any Perforce command.


p4 [-cclient -ddir -Hhost -pport -Ppass -uuser -xfile -Ccharset] [-G] [-s] cmd [args ...]
p4 -V
p4 -h


-c client

Overrides any P4CLIENT setting with the specified client name.

-d dir

Overrides any PWD setting (i.e. current working directory) and replaces it with the specified directory.


Causes all output (and batch input for form commands with -i) to be formatted as marshalled Python dictionary objects. This is most often used when scripting.

-H host

Overrides any P4HOST setting and replaces it with the specified hostname.

-p port

Overrides any P4PORT setting with the specified port number.

-P pass

Overrides any P4PASSWD setting with the specified password.


Prepends a descriptive field (for example, text:, info:, error:, exit:) to each line of output produced by a Perforce command. This is most often used when scripting.

-u user

Overrides any P4USER, USER, or USERNAME setting with the specified user name.

-x file

Instructs Perforce to read arguments, one per line, from the specified file. If file is a single hyphen (-), then standard input is read.

-C charset

Overrides any P4CHARSET setting with the specified character set.

-L language

This feature is reserved for system integrators.


Displays the version of the p4 client program and exits.


Displays basic usage information and exits.

Usage Notes

For example, the command p4 -c anotherclient edit -c 140 foo will open file foo for edit in pending changelist 140 under client workspace anotherclient.

The -x option can be extremely powerful - as powerful as whatever generates its input. For example, a UNIX developer wishing to edit any file referring to an included foo.h file, for instance, could grep -l foo.h *.c | cut -f1 -d: | p4 -x - edit.

In this example, the grep command lists occurrences of foo.h in the *.c files, the -l option tells grep to list each file only once, and the cut command splits off the filename from grep's output before passing it to the p4 -x command.

For example, a script could be written as part of an in-house build process which executes p4 -s commands, discards any output lines beginning with "info:", and alerts the user if any output lines begin with "error:".

In some cases, it may not be intuitively obvious what keys the client program uses. If you pipe the output of any p4 -G invocation to the following script, you will see every record printed out in key/value pairs:


import marshal, sys

    while 1:
        print '\n--%d--' % num
        dict =  marshal.load(sys.stdin)
        for key in dict.keys(): print "%s: %s" % (key,dict[key])

except EOFError: pass

Python developers on Windows should be aware of potential CR/LF translation issues; in the example, it may be necessary to call marshal.load() to read the data in binary ("rb") mode.

For example, p4 -c anotherclient help provides exactly the same output as p4 help.


p4 -p new_server:1234 sync

Performs a sync using server new_server and port 1234, regardless of the settings of the P4PORT environment variable or registry setting.

p4 -c new_client submit -c 100

The first -c is the global option to specify the client name. The second -c specifies a changelist number.

p4 -s -x filelist.txt edit

If filelist.txt contains a list of files, this command opens each file on the list for editing, and produces output suitable for parsing by scripts.

Any errors as a result of the automated p4 edit commands (for example, a file in filelist.txt not being found) can then be easily detected by examining the command's output for lines beginning with "error:"

Perforce 2002.1 Command Reference
<< Previous Chapter
Additional Information
Table of Contents
Perforce on the Web
Next Chapter >>
File Specifications
Please send comments and questions about this manual to [email protected].
Copyright 1999-2002 Perforce Software. All rights reserved.
Last updated: 04/03/02