|
Synopsis
Global options for Perforce commands; these options may be supplied on the command line before any Perforce command.
Syntax
p4 [-c client -d dir -H host -p port -P pass -u user -x file] [-G] [-s] cmd [args ...] p4 -V
Options
-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.
|
-G
|
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.
|
-s
|
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.
|
-V
|
Displays the version of the p4 client program and exits.
|
Usage Notes
- Be aware that the global options must be specified on the command line before the Perforce command. Options specified after the Perforce command will not be interpreted as global options, but as options for the command being invoked. It is therefore possible to have the same command line option appearing twice in the same command, being interpreted differently each time.
- 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 is useful for automating tedious tasks; a user adding several files at once could create a text file with the names of these files and invoke p4 -x textfile add to add them all at once.
- 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.
- The -s option can be useful in automated scripts.
- 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:
#!/usr/local/bin/python
import marshal, sys
try: num=0 while 1: num=num+1 print '\n--%d--' % num dict = marshal.load(sys.stdin) for key in dict.keys(): print "%s: %s" % (key,dict[key])
except EOFError: pass
|
- Some uses of the global options are absurd.
- For example, p4 -c anotherclient help provides exactly the same output as p4 help.
Examples
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:"
|
|