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

P4 Visual Client (P4V) Documentation | 2025.2

# What's new in P4V

P4V includes the following key features and enhancements. For a complete list of what’s new and bug fixes in this release, see the release notes.

## 2025.2

Released: June 2025

### Helix Core is now P4

Perforce has a new look and logo that reflects our place in DevOps workflows. As part of these changes, Helix Core is now P4. Name updates and new icons to align with the P4 branding will be rolled out soon. To learn more, seeRe-Introducing P4.

### Enhanced searches with P4 Search integration

To improve searches within changelist descriptions on the Submitted changelist tab, use more comprehensive search criteria, and reduce the load on the P4 Server, integrate P4V with P4 Search. P4 Search, powered by Elasticsearch, indexes information from the P4 Server.

To learn more, see Integration with P4 Search.

### Visibility and performance improvements when reconciling offline work

- Experience improved performance when reconciling file moves, renames, and edits. Select the Enable parallel reconcile using client threads option in the Performance category in the Preferences dialog box. To learn more, see Performance preferences.

- For better visibility during long-running reconcile actions, such as reconciling large file sets, you can view detailed progress. To learn more, see Reconcile offline work.

### Other enhancements

- When viewing a submitted changelist, see an overview of file content changes directly in the Submitted Changelists dialog box. To learn more, see View Diff summary for a submitted changelist.

- Use keyboard shortcuts to rename or move a file in the depot tree, the workspace tree, or the Pending changelist tab. On Windows and Linux, press F2. On macOS, press Ctrl+Alt+V.

### Behavior changes

Starting with P4V 2025.2, the parallel server commands options in the Performance category in the Preferences dialog box are enabled by default for new users.

### What’s new in other P4 clients

To learn about what’s new in other P4 clients, see the following information:

- P4 Admin

- P4 CLI

- P4 Merge

### Supported product versions and end-of-life information

To take advantage of new product features and improvements, and to ensure that your product is supported, install a current version. For a list of supported product versions, along with maintenance and end-of-life (EOL) information, see P4 End-of-Life (EOL) Schedule - Clients.

## 2025.1

- Context menu customization is now available. Users can add, remove, and reorder items in context menus for various objects to quickly access frequently performed actions. You can also add separators to better organize your context menus. To learn more, see Context Menu preferences.

- Enhanced the stream creation experience. The stream name and location fields are now more logically organized and easier to use. To learn more, see Basic Settings.

- Enhanced the Change Ownership dialog to now include 'Current User' and 'Current Workspace' options, simplifying the process of changing ownership of a changelist.

- P4V now caches the file content used for diffing in the Diff Summary locally to reduce the number of server commands needed.

- P4VJS has a function specifically to connect to the P4 Code Review server from within P4VJS. See `p4vjs.getCodeReviewUrl()` under Supported functions in P4V API for JavaScript Documentation.

## 2024.4

- Enhanced filtering of client workspaces by workspace Owner using `starts with`, `contains`, and `ends with`. To learn more, see Filter workspaces.

- Enhanced filtering of Pending changelists and Submitted changelists by multiple users and multiple workspaces.

  - By typing values in a comma-separated list if you have selected "match any of".

  - By using * wildcards for strings that begin with, end with, or contain the substring you specify.

  - By using the Select User dialog box to browse for users or the Select Workspace to browse for workspaces.

  - By typing a string in the Select User dialog box.

  To learn more, see Filter pending and submitted changelists with "match any of".

- Users that are connected to an Edge server can create and edit not only labels that are visible solely to users that are connected to the Edge server, but also labels that are visible across the Commit-Edge environment. To learn more, see Global labels and Edge servers.

- P4VC enhancements:

  - The `p4vc workspacewindow -r` command refreshes the workspace.

  - If a P4V instance is already running, the following commands interact with it instead of launching an additional instance: `p4vc workspacewindow -s`, `p4vc workspacewindow -t`, and `p4vc workspacewindow -r`.

  - The `p4vc reviewrequest` command allows you to request a P4 Code Review review of a P4V changelist from the command line, and the `p4vc reviewupdate` command allows you to update an existing review.

  - Support for combining depot and local file paths when running the `diff`, `diffhave`, and `diffprev` commands.

  To learn more, see P4VC command line client for P4V components.

- The Diff Summary tab is available in the History dialog box for a file as well as on the History tab. To learn more, see Diff Summary.

## 2024.3

- The Review State column on the Pending tab indicates if the rules of a P4 Code Review review are blocking the approval of your pending changelist. To learn more, see Review State column of the Pending tab.

- When you right-click a stream to revert changes, the Revert Items dialog box provides the default option to revert the stream spec with the files. To learn more, see Revert a stream.

- The P4VC command-line utility has an option to diff directly from the command line. See the `diff -f` Command Syntax.

- The Depot tab now accepts Windows style paths with the `\` backslash and converts them to Depot syntax with the `/` forward slash.

## 2024.2

- P4V supports the creation of Sparse Streams. Sparse streams are immediately available for use because a file is not branched from the parent stream until the user checks out a file. In most cases, sparse streams are better than task streams because there is no need to delete or unload a sparse stream. To learn more, see Stream types and Sparse streams.

- Support for the `partitioned-jnl` client workspace type, which might improve performance. See Workspace types and Create a workspace.

- Support for comments in the specification for Workspace Mappings, Branches, and Labels. See Define a workspace view as well as Create branches and Create labels.

- To make it easier to log in to P4V, you have the option of temporarily showing the password in plain text. See Connect to P4 Server.

- P4VJS has a function specifically to open `file:` URLs. See `p4vjs.openFile(url)` under Supported functions in P4V API for JavaScript Documentation.

## 2024.1

A convenient Action menu for a pending or submitted changelist.

## 2023.4

The Activity Monitor allows you to see the commands associated with an action, such as Refresh, Sync, or Submit.

## 2023.3

The `Select Workspace` dialog box has an additional option, `Show workspaces from all servers`, which can be useful if the user has workspaces on edge servers or the commit server. See Switch workspaces.

## 2023.2

- The Diff Summary feature is a convenient way to diff files.

- For convenience, multiple pending changelists can be selected and deleted. Shelved files on these changelists will also be deleted as part of this action. See also Delete shelved files.

- For convenience and saving time in your workflow,

  - P4V can automatically check out files when you revert them. See Step 3 of To revert files

  - Sync and resolve can automatically sync and resolve when unshelving files

- The Merge/Integrate dialog box provides options for how to deal with line ending and white space differences. See Step 4 of Open files for merge.

- The p4vc command line tool supports opening a specified file in P4V, and you can also specify the tab. See workspacewindow in the P4VC command line client for P4V components topic.

- A developer can use P4VJS to create a set of messages that can appear in the P4V log pane. See "Log test" in the Examples that run in demo mode topic of P4V API for JavaScript Documentation.

## 2023.1

This release of P4V has been upgraded to use the Qt6 Framework. This allows us to officially support additional platforms, among them is support for Windows 11 and the availability of Universal builds for macOS. These will provide native support for arm64 processor platforms as well as Intel platforms.

## 2022.3

- It is easy to Rename a workspace.

- You might find it convenient to Filter changelists for streams.

- For flexibility, the Work in this Stream menu offers the Choose at the time of action option. See Streams preferences

- Delete a stream allows the administrator to permanently delete a stream and its history.

- Stream components support writeable components, `writeimport+` and `writeall`

- The Find in Streams dialog boxcan display the Effective Component Type when a view involves a chain of components.

- To help your organization avoid unwanted downtime, starting seven (7) days before the license expires, the P4 administrator is notified of the expiration date when logging in to the Server. The user with the `super` access level might have modified this default behavior to a different number of days, or to warn all users, or to warn no users. This depends on the settings of the `auth.licenseexpiry.warn` and `auth.licenseexpiry.warnthreshold` configurables in the P4 CLI Reference.

## 2022.2

You can now define a stream to be a "component" of another stream. This enables content to be more easily reused across projects. See Stream components.

Delete a stream explains how to view the history of deleted streams.

## 2022.1

- `Connections preferences > When the application launches:` a new installation defaults to the `Restore all previous opened connections` option. By default, the user no longer needs to interact with the Open Connection dialog box at the start of each session.

  - Users who prefer to see the Open Connection dialog box will notice that the workspace field defaults to the most recently used workspace.

- Command Line / Terminal / File Manager preferences support the choice of different applications.

- Behavior preferences has the `Warn before marking files for delete` option that you can enable. If enabled, you can accept the default threshold of `100` files, or set a different threshold.

- By default, Preferences > Connections > "Automatically try to reconnect to the server every `30` seconds" is enabled for a new installation. See Connections preferences.

- A P4 Server property controls whether P4V automatically tries to reconnect to the server, and if so, at what interval. See `P4V.Performance.ReconnectInterval` in the P4 Server Administration Documentation.

- A P4 Server property, if set to `Off`, no longer allows anyone to edit a stream spec without first checking it out. See `P4V.Features.AllowDirectStreamEdit` in the P4 Server Administration Documentation.

## 2021.4

- Find in Streams enables you to find the streams that map the path that you specify.

- You might want to know if another user who is connected to a different server than you has a lock on the file that you want to edit. See File globally locked by you and File locked (or globally locked) by other user.

  - When a user is connected to an edge server and locks a file, the lock is global, affecting all servers, instead of merely local to that edge server. See the Note in Edit files.

- Previewing a file has Markdown support on the Files tab.

- Description columns in list views can have HTML links. See Click a link in a list of Descriptions.

- P4V supports one-to-many mappings for both classic and stream depot types. See:

  - Map a single depot path to multiple locations in a workspace (ditto mapping with &)

  - the icon for `File is "ditto" mapped to more than one directory in the workspace` at P4V icons

- P4VJS supports the ability to get file icons which can be used in HTML windows and tabs. See the addition of `p4vjs.getFileIcon(path)` in Supported functions in the P4V API for JavaScript Documentation.

- Building custom HTML tools with the P4V API for JavaScript Documentation is easier because the developer no longer needs to reference a `p4vjs.js` file from the HTML source file.

## 2021.3

- Markdown support in Description fields in forms, such as the Submitted Changelist

- Adding a tab is easy with the new + button. See View and add tabs.

- For convenience, a pending changelist A changelist that has not been submitted., such as the default changelist, is always listed first on the Pending Changelists tab

- If a long sync is interrupted by a communication error with the P4 Server, and the `Automatically try to reconnect to the server` preference is enabled, P4V will automatically resume the sync after the connection is re-established. See Connections preferences.

## 2021.2

- The Stream Graph feature has enhancements for filtering, navigating, and comparing streams. See Stream Graph.

- The context menu for the stream spec within a Submitted Changelist tab offers options for Stream History, Stream Revision Graph, Diff Against Previous Revision, and Diff Against Head.

- Integration with P4 Code Review includes support for reviews of stream specs when the stream spec is the only change in the changelist.

- When connected to a P4 Server version 2021.1 or later, and you reuse your workspace to switch it to an unrelated stream or to a stream in a different depot, your work in progress will be saved. See Unrelated streams versus related streams.

- Git Refs tab allows you to filter the view by tag or branch, sync a repo to a tag or branch, and diff against head or previous commit.

- History tab for repos lists the changes made to folders.

- View effective settings has enhancements for viewing the status of P4V features.

## 2021.1

Your administrator can override your list of URLs by setting the `P4VJS.HTMLAllowList` property. You can use the Copy to Clipboard button to help you email a properly-formatted list of URLs for your administrator to consider allowing. See HTML Tools preferences.

For P4VJS (see P4V API for JavaScript Documentation):

- Additional security for "Restricting pages hosted by P4V" - see Deploy custom HTML pages and note that running or developing P4VJS HTML pages in a browser outside P4V is no longer supported

- Additional syntax for the `p4vjs.p4(command)` in Supported functions

- You can now specify which items to refresh - see `p4vjs.refresh(<object type>, <object name>)` in Supported functions

- You can now refresh an array of files - see `p4vjs.refreshFiles(<array of files>)` in Supported functions

- You can now manipulate client view mappings. See MapApi support

- `p4vjs.nextPage` now refreshes any pending change before loading P4V submit - see "P4VJS functions for Submit" under HTML Actions

- You can now use "Submit HTML Actions" with P4VC. See P4VC command line client for P4V components.

"Applets" for P4V and P4 Admin are no longer supported. This is because the P4V WebKit-based P4JsApi (the JavaScript API for Visual Tools) has been officially retired. It is replaced by P4VJS, which is a WebEngine-based solution that supports HTML5. For more information, see P4V API for JavaScript Documentation and P4V API for JavaScript Conversion Documentation.

## 2020.3

Stream specification and inheritance topic explains the new concept of Parent View `inherit` versus `noinherit`.

New conventions for stream display indicate the value of the Parent View - see Stream Graph.

Create streams is affected by the Rules for the default Parent view, which might allow the user to:

- Select a Parent View of `inherit` or `noinherit` - see Basic Settings
- Convert the Parent View of a stream to `inherit` or `noinherit`

A user of a stream spec with Parent View `noinherit` can manually merge changes from the parent stream - see Stream spec integration.

Comments about the stream spec are supported in the Stream Edit dialog's Advanced tab

The Resolve Stream dialog box now supports three ways of Resolve stream specs.

The P4V user who submits files to an edge server no longer needs to wait for the submitted archive files to be transferred to the commit server. See Background archive transfer for edge server submits

Graph depot A depot of type graph that is used to store Git repos managed by P4 Server. See also Git Connector and classic depot. enhancement: History tab for repos now supports:

- History comparison using Folder Diff
- Diff Against Head and Diff Against Previous
- sorting the rows and repositioning the columns

For P4VJS:

- HTML Tools preferences have changed: HTML Tools are now enabled by default.
- P4VJS supports additional p4 commands. See the list at Supported functions in the P4V API for JavaScript Documentation.

Performance enhancements that avoid the wait time while a large list loads:

- Workspace tree list of files now loads files as the user scrolls down
- Depot tree list of files -- If Preferences > Server Data > Number of files per directory fetched at a time in the Depot tree is set to a value other than the default of `0`, such as the non-default minimum of `500`, files will load as the user scrolls down. The user might see "Loading for files ..." while another batch is loading.

P4 Code Review integration - see Show a submitted changelist in P4 Code Review.

## 2020.2

- Automatic update of P4V to the minimum required version. See Enforce the minimum client version.
- Automatically reconnect to the server if the connection is lost. See Connections preferences.
- New option to prompt the user for confirmation before deleting a large number of files. To learn how to configure the threshold, see "Warn before removing files from workspace" at Behavior preferences.
- Enhanced Integration with P4 Code Review with new types of context menu items. See:
  - View files in P4 Code Review from context menus
  - View jobs in P4 Code Review from context menus
- Graph depot A depot of type graph that is used to store Git repos managed by P4 Server. See also Git Connector and classic depot. enhancements:
  - The Repos tab enables you to view any repo for which you have read permission. See Repos tab.
  - The History tab enables you to view the history of commits for repo files and see diffs between commits. See History tab for repos.
- Navigate from any point directly to the address bar with the shortcut named Jump to Address Bar. To configure this shortcut, see Shortcuts preferences.

- Syntax highlighting for code when comparing two text files in P4 and P4 Merge. To configure this feature, see Diffing text files in the P4 Merge Documentation.
- P4 Admin enables you to develop added functionality. See HTML Tools in the P4 Admin Documentation.

## 2020.1

### Large changelist area within dialog box

If the number of files in the changelist exceeds the limit of Edit > Preferences > Server Data > Maximum number of files displayed per changelist , the dialogs for Submit, Shelve, Unshelve, Revert, and Resolve display the files differently. See Performance preferences.

### Graph Depot features

Users can create, open, and sync hybrid workspaces A client workspace that supports both repos of type graph (see 'Git Connector') and the classic P4 file revision model. to browse and view both Perforce and Git (graph depot A depot of type graph that is used to store Git repos managed by P4 Server. See also Git Connector and classic depot.) source files. See Work with graph depots.

### Edit recent workspaces

You can specify how many recent workspaces are listed and remove the recent workspaces you no longer want. See Edit recent workspaces.

### Custom page before and after a submit (HTML Actions)

You can make P4V present a custom HTML page before and after the user submits a changelist. See Custom HTML Actions, HTML Tabs, and HTML Windows.

### Command-line enhancements

Although P4V is primarily used a graphic user interface, it does have a command-line interface. The new commands are `p4vc history`, `p4vc properties`, and `p4vc diffprev`. In addition, `p4vc submit` now supports launching with file names. See P4VC command line client for P4V components.

### Stream spec enhancements

- displays any custom fields of the stream spec form. (Such fields are created on the server command line by using the p4 streamspec command.)
- supports `diff stream against previous`

### P4Admin features

- creating and viewing depots of type `graph`
- setting access control for stream specs (see Managing Permissions in the P4 Admin Documentation)

## 2019.2

For a complete list about the product, see the 2019.2 P4V Release Notes. New information in this Guide is at:

- Streams Revision Graph

- Shelve streams

- Support for P4V connecting to a P4 Server that uses P4 AS - see Step 5 at Connect to P4 Server

Display preferences allow the choice of:

Dark theme for a dark background with light font: |
or the default Light theme: |

## 2019.1

Following is a summary of new information with links to topics. For a complete list, see 2019.1 P4V Release Notes.

- Introduced private editing of streams. This feature lets you modify a stream in isolation from other users of that stream, as opposed to having changes become global as soon as you save them. Privately edited streams get checked out and added to a changelist, allowing for advanced testing and enhanced traceability. For details, see Edit stream specs and Resolve stream specs.
- Added the option to filter the depot view by stream type. For details, see Customize Depot and Workspace views using filters.

- When switching streams in the current workspace, P4V now:

  - Offers the option to perform a reconcile operation when switching streams in the current workspace. For details, see Streams preferences.
  - Automatically shelves files checked out to the default changelist. For details, see Work in a stream
  - Prompts you to shelve files checked out to a numbered changelist.

For details, see Streams preferences and Work in a stream.

Your search for returned results