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

P4 CLI Documentation | 2026.1

# What’s new in P4 Server 2024.1

Released: May 2024

For a complete list of what’s new in this release, see the following resources:

- Release notes

- What’s new in P4 administration in the P4 Server Administration Documentation

- What’s new in the P4 Virtual File Service (P4 VFS) Documentation

## Sparse streams

Sparse streams are truly lightweight and have advantages over task steams. To learn more, see Sparse streams

To allow you to start working with a new stream quickly, the p4 stream command includes the sparsedev and sparserel stream types.

- To keep a sparse stream lightweight, the dm.stream.sparse.branchmax configurable allows you to set a limit on the number of files in the sparse stream.

- If that limit needs to be exceeded, a `sparsedev` stream can be converted to a `development` stream, and a `sparserel` stream can be converted to a `release` stream. To learn more, see the convertsparse option of `p4 stream`.

## Partitioned client workspace

A new type of client workspace, `partitioned-jnl`, might have a positive effect on performance and, like the default `writeable` type of client workspace, is eligible for journaling, checkpointing, and recovery. To learn more, see the `Type:` field of `p4 client`.

Configurables that support `partitioned-jnl` are: client.readonly.dir, db.partition.dropondelete, and db.partition.verify.

## Delta transfer

The Delta Transfer feature improves performance of the p4 submit command for large binary files of type `+F` (see File type modifiers) from remote clients. It is possible to only send the modified portion (delta) of such files. The configurables to enable and control this are:

- `net.delta.transfer.minsize`, the minimum file size for delta transfers.

- `net.delta.transfer.threshold`, the maximum percentage of a file that differs before the whole file is transferred rather than only transferring the deltas.

## Ease of administration

Running `p4 verify -t` on the commit server adds any missing archives to the journal to be replicated to downstream replicas, including edge servers. To learn more, see `-t` in the Options of p4 verify.

The `-a` option of p4 depots lists all depots, including hidden depots.

A single command that deletes both a client workspace and its shelves. To learn more, see the `-Fd` option of p4 client.

To improve the management of configurables:

- `p4 configure show` includes the timestamp of the most recent modification of given configurable. To learn more, see show in the Options of p4 configure.

- Providing a comment when changing the value of a configurable with the `p4 configure` command can be made mandatory by setting the `dm.configure.comment.mandatory` configurable.

- Additional information about each configurable is available from the output of `p4 configure help` command. See Default value and p4 configure help. (The output of `p4 help configurables` lists each configurable's Name and Use.)

## Various

A new type of client workspace, `partitioned-jnl`, might have a positive effect on performance and, like the default `writeable` type of client workspace, is eligible for journaling, checkpointing, and recovery. To learn more, see the `Type:` field of `p4 client`.

Configurables that support `partitioned-jnl` are: client.readonly.dir, db.partition.dropondelete, and db.partition.verify.

For security, consider setting the `dm.user.hideinvalid` configurable.

Support for adding comments preceded by `##` to the `View` section of p4 client, p4 branch, and p4 label specs, as well as to the `Typemap` section of p4 typemap specs. (These follow the same pattern as protection table Comments.)

The db.journalrotate.warnthresh can be set to remind admins and users of type operator to rotate the journal.

The dm.change.skipkeyed configurable might improve performance for p4 populate.

The submit.storagefields configurable controls the action of a submit request with regards to the `compCksum` field in a storage record.

Your search for returned results