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

P4 Server Administration Documentation | 2025.1

# Case sensitivity and multi-platform development

To avoid the risk of errors or confusion when adding and syncing files with similar names in a cross-platform environment, be aware that:

- A P4 Server on Linux is, by default, case-sensitive for names, unless configured to be run in case-insensitive mode.

- A P4 Server on Windows ignores case differences in names.

If you do not know the platform of your P4 Server, run `p4 info` and look for `Server version` in the output, where `P4D/NTX64` means Windows and `LINUX26X86_64` means Linux.

## Clients connected to a case-insensitive server

Users running a Linux client and connecting to a case-insensitive P4 Server need to know that their p4d ignores variations of case in the name of any file or path.

Suppose a Linux user submits the following three files to a case-insensitive p4d, expecting `DIR` and `dir` to be treated as two distinct directories:

    p4 add //project1/dir/file1
    p4 add //project1/dir/file2
    p4 add //project1/DIR/file3

Clients on a case-sensitive operating system consider `file3` to be in the `DIR` directory.

Clients on case-insensitive operating system consider `file1`, `file2`, and `file3` are all in the `dir` directory.

## Clients connected to a case-sensitive Linux server

When a Windows client adds new files to a case-sensitive Linux server, it is best to be consistent about the names of directories and files. For example, it is possible to add two files to the depot in depot syntax as `//depot/main/one.c` and `//depot/MAIN/one.c`.

Suppose a Linux user has already submitted these three files to a case-sensitive Linux server:

    p4 add //project1/dir/readme.html
    p4 add //project1/dir/Readme.html
    p4 add //project1/dir/README.html

When a P4 client on a case-insensitive operating system, such as Windows, individually syncs each of those files in that same order, `Readme.html` overwrites `readme.html`, and then `README.html` overwrites `Readme.html`. Thus, instead of three files on disk, there is only one.

When a P4 client on a case-sensitive Linux, individually syncs each of those files in that same order, three files are sync'd.

### Lowercase default for workspaces

When a client is connected to a Linux server, the default name for new client workspaces follows the name of the workstation in lowercase. For example, if a new user creates a client workspace on a Windows machine named `ROCKET`, this client workspace is named `rocket` by default. If the user later sets the P4CLIENT variable to `ROCKET` or `Rocket`, P4 Server displays a message that the workspace is undefined. To fix the problem, the Windows user must set `P4CLIENT` to `rocket` or unset `P4CLIENT`.

## Case sensitivity for P4 Cloud

When you sign up for P4 Cloud, you can choose to use case-insensitive mode. Do not select the Use case-insensitive mode check box unless you have a specific need to support a case-insensitive client application, such as Epic Games' UnrealGameSync. You cannot change this mode after P4 Cloud deployment.

## Trigger to enforce consistent names

If you want to enforce the input of consistent path names, consider writing a pre-submit trigger. See Triggering before or after commands.

Your search for returned results