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

P4 CLI Documentation | 2025.1

# File type modifiers

You can apply file type modifiers to the base types of specific files to preserve timestamps, expand RCS keywords, specify how files are stored in the service, and more. For details about applying modifiers to file types, see Specifying how files are stored in P4 Server.

The following table lists the file type modifiers:

Modifier | Description | Comments
--- | --- | ---
`+C` | P4 Server stores the full compressed version of each file revision | Default storage mechanism for `binary` files and newly-added `text`, `unicode`, or `utf16` files larger than 10MB.
`+D` | P4 Server stores deltas in RCS format | Default storage mechanism for `text` files.
`+F` | P4 Server stores full file per revision | For large ASCII files that aren’t treated as text, such as PostScript files, where storing the deltas is not useful or efficient.
`+k` | RCS (Revision Control System) keyword expansion | Supported keywords are as follows:
`$Id$` |
`$Header$` |
`$Date$` | Date of submission
`$DateUTC$` | Date of submission in UTC time zone
`$DateTime$` | Date and time of submission
`$DateTimeUTC$` | Date and time of submission in UTC time zone.
`$DateTimeTZ$` | Date and time of submission in the server’s time zone, but including the actual time zone in the result.
`$Change$` |
`$File$` |
`$Revision$` |
`$Author$` |
RCS keywords are case-sensitive. A colon after the keyword (for example, `$Id:$`) is optional.
`+ko` | Limited keyword expansion | Expands only the `$Id$` and `$Header$` keywords. Primarily for backwards compatibility with versions of P4 Server prior to 2000.1, and corresponds to the `+k` (`ktext`) modifier in earlier versions of P4 Server.
`+l` | Exclusive open (locking) | If set, only one user at a time can open a file for editing. Useful for binary file types (such as graphics) where merging of changes from multiple authors is not possible.
`+m` | Preserve original modification time | The file’s timestamp on the local file system is preserved upon submission and restored upon sync. Useful for third-party DLLs in Windows environments, because the operating system relies on the file’s timestamp. By default, the modification time is set to the time you synced the file.
`+S` | Only the head revision is stored | Older revisions are purged from the depot upon submission of new revisions. Useful for executable or `.obj` files.
`+S`n`` | Only the most recent `n` revisions are stored, where `n` is a number from `1` to `10`, or `16`, `32`, `64`, `128`, `256`, or `512`. | Older revisions are purged from the depot upon submission of more than `n` new revisions, or if you change an existing `+S`n`` file’s `n` to a number less than its current value. For details, see the P4 CLI Reference. Using an +Sn file modifier results in special behavior when you delete and re-add a file: no file revisions are deleted that were submitted before the add or delete. For example, if a file of type `+S2` is marked as deleted in revision `5`, and then re-added with the same file type and modifier, revisions `3` and `4` are not purged.
`+w` | File is always writable on client | Not recommended, because P4 Server manages the read-write settings on files under its control.
`+x` | Execute bit set on client | Used for executable files.
`+X` | Archive trigger required | The P4 Server runs an `archive` trigger to access the file. See the P4 Server Administration Documentation for details.

Your search for returned results