Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 CLI Reference | 2025.1

# p4 set

View or set P4 variables used by P4 Servers and client applications.

## Syntax

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

Syntax conventions

## Description

View or set P4 variables, which are used by P4 Server, P4 Proxy, P4 client applications (such as P4 CLI and P4 Visual Client (P4V)), and plugins (such as P4 for Eclipse and P4 for Visual Studio).

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 P4 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 P4 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.

where

- Command line overrides P4CONFIG
- P4CONFIG overrides P4ENVIRO, and so on.
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 P4 client, run `p4 set` without any arguments.

To view values for variables that affect a P4 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,

Copy

    P4CLIENT=symlinks-nix (config)
    P4CONFIG=p4config.txt (config '/home/perforce/p4clients/symlinks-nix/p4config.txt')
    P4EDITOR=/usr/bin/vi
    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.

## Options

`-q` | Reduce the output. When listing files, don’t display the source of the definition. The output is suitable for parsing with scripts.
`-s` | 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.
`g-opts` | See Global options.

## Usage notes

Can File Arguments Use Revision Specifier? | Can File Arguments Use Revision Range? | Minimal Access Level Required
--- | --- | ---
N/A | N/A | `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 P4 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 P4 Server variables, see Environment and registry variables, which also lists the server variables that are reserved for the P4 administrator.

## Examples

`p4 set` | On all platforms, display a list of each P4 Server variable and its source without changing their values.
`p4 set -q` | On all platforms, display a list of P4 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:host1:1666` | On Windows, set a variable that specifies that P4 Server applications are to connect to a P4 service at host host1, port `1666`, via SSL/TLS. The variable is set only for the current local user.
`p4 set -s P4PORT=ssl:host1: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 P4 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.

Your search for returned results