p4 set

View or set Helix Core variables used by Helix Core Servers and client applications.


p4 [g-opts] set [-q] [-s | -S svcname] [var[=[value]] ...]

Syntax conventions


View or set Helix Core variables, which are used by Helix Core Server, Helix Core Proxy Server, Helix client applications (such as P4 and P4V), and Helix plugins (such as P4Eclipse and P4VS).

To view a list of variables, To set the value of a variable,
with the value and the source of each variable, run the p4 set command or the p4 set -S service-name command. The values that display are in effect for subsequent commands and when starting a Helix Windows service. specify the variable and the value. For example, p4 set P4EDITOR="C:\Program Files\Notepad++\notepad++.exe"

Depending on the operating system and other factors, variable definitions can be stored in the file defined by P4CONFIG, in the file defined by P4ENVIRO, or in the Windows registry.

  • On Linux, values defined with p4 set are stored in the P4ENVIRO file.
  • On Windows, values defined with p4 set are stored in the P4ENVIRO file, if this is set. If it is not set, they are stored in the Windows registry.

    • Windows administrators running Helix Server as a service can set environment variables used by the service with p4 set -S svcname var=value. These variables are always stored in the Windows registry.

    • Windows administrators can use p4 set -s var=value to set the variable’s default values for all users on the machine.

To change a variable setting that applies to the current user, use p4 set var=value

To set multiple variables in a single command, use a blank space as a separator:

p4 set -S "Perforce Proxy" P4DEBUG=net.keepalive.idle=2800 P4PFSIZE=12000

Precedence for variables


You can specify client settings such as port, user, and workspace names by using any of the following:

  1. On the command line, using options.
  2. In the configuration file(s) specified by a P4CONFIG environment variable, where each config file can be specific to a workspace.
  3. In the P4ENVIRO configuration file, which is for variables that remain constant for all the workspaces on a given computer.
  4. User environment variables.
  5. System environment variables (on Windows, system-wide environment variables are not necessarily the same as user environment variables)
  6. In the user registry or settings set by issuing the p4 set command.
  7. In the system registry or system settings set by issuing the p4 set -s command.


The output of p4 set lists:

  • the value of each variable

  • how each variable was set, that is, by config, enviro, set, or set -s

Unsetting variable values

To unset the value for a particular variable, leave its value empty.

Viewing variable values and the source of the definition

To view the list of values for a Helix Core client, run p4 set without any arguments.

To view values for variables that affect a Helix Windows service, run p4 set -S service-name

  • On Linux, this displays the values of the associated environment variables.
  • On Windows, this displays either the environment variable (if set), or the value in the registry and whether it was defined with p4 set (for the current user) or p4 set -s (for the local machine).

The output to the p4 set command shows the source of the variable definition. For example,

P4CLIENT=symlinks-nix (config)
P4CONFIG=p4config.txt (config '/home/perforce/p4clients/symlinks-nix/p4config.txt')
P4IGNORE=p4ignore.txt (enviro)
P4PORT=win-bruno:20151 (config)
P4USER=bruno (set -s)
P4_20151_CHARSET=none (set)

If a P4CONFIG file was used to set the variable, its location is displayed.

If no source is displayed, the value is stored in the variable itself rather than in a file containing the definition.



Reduce the output.

When listing files, don’t display the source of the definition. The output is suitable for parsing with scripts.


Set the value of the registry variable for the local machine.

On Windows, without this option, p4 set sets the variables in the HKEY_CURRENT_USER hive. When you use the -s option, the variables are set in the HKEY_LOCAL_MACHINE hive.

The location is reflected in the output of p4 set on Windows.

Requires Windows administrator privileges.

-S svcname

Set the value of the registry variables as used by service svcname.

Requires Windows administrator privileges.


See Global options.

Usage Notes

Can File Arguments Use Revision Specifier? Can File Arguments Use Revision Range? Minimal Access Level Required



none for a user to see the variables that affect that user

Requires Windows administrator privileges for p4 set -S and p4 set -s

  • Changes to registry settings under Windows affect the local machine only. An administrator setting P4JOURNAL for a Helix Server Windows service must be present at the machine running the service.
  • If you’re working in a Linux-like environment on a Windows machine, for example, Cygwin, use environment variables instead of p4 set.
  • For a description of all the Helix Server variables, see Environment and registry variables, which also lists the server variables that are reserved for the Helix Core administrator.


p4 set

On all platforms, display a list of each Helix Server variable and its source without changing their values.

p4 set -q

On all platforms, display a list of Helix Server variables in a format suitable for scripts to parse without changing their values.

p4 set P4MERGE=

On Windows or macOS, unset the value of P4MERGE.

p4 set P4PORT=ssl:tea:1666

On Windows, set a variable that specifies that Helix Server applications are to connect to a Perforce service at host tea, port 1666, via SSL.

The variable is set only for the current local user.

p4 set -s P4PORT=ssl:tea:1666

Set P4PORT as above, but for all users on the system.

You must have administrative privileges to do this.

p4 set P4CONFIG=.p4config.txt Set the P4CONFIG environment variable to use the specified file. For more information, see P4CONFIG.

p4 set -S p4svc P4PORT=1666

For the Windows service p4svc, specify that p4s.exe listens on port 1666 for incoming connections from Helix Server applications.

You must have administrative privileges to do this.

p4 set -S Perforce P4DEBUG="net.keepalive.idle=2700"

For the Windows service, which defaults to the name Perforce, instruct p4s.exe to wait 2700 seconds before starting to send keepalives.

You must have administrative privileges to do this.

p4 set P4EDITOR="C:\File Editor\editor.exe"

On Windows, for the current local user, set the path for the default text editor.

The presence of spaces in the path to the editor’s executable requires that the path be enclosed in quotation marks.