This guide (previously titled Perforce Server Administrator Guide: Fundamentals) describes the installation, configuration, and management of the Helix versioning engine (Perforce server). This guide covers tasks typically performed by a system administrator (for instance, installing and configuring the software and ensuring uptime and data integrity), as well as tasks performed by a Perforce administrator, such as setting up Perforce users, configuring Perforce depot access controls, resetting Perforce user passwords, and so on.

This guide focuses on the installation, configuration, and management of a single Perforce server.

Because Perforce requires no special system permissions, a Perforce administrator does not typically require root-level access. Depending on your site's needs, your Perforce administrator need not be your system administrator.

Both the UNIX and Windows versions of the Perforce service are administered from the command line. To familiarize yourself with the Perforce Command-Line Client, see the P4 Command Reference.

About this manual

This manual includes the following chapters:




Discusses the basic client-server architecture for connected and disconnected clients. Describes the basic administration workflows for installing, configuring, and managing the Perforce server.

“Installing and Upgrading the Server”

Describes how to install the Perforce service or upgrade an existing installation

“Configuring the Server”

Explains basic configuration options for enabling DVCS, accepting client requests, case sensitivity, logging, and P4V settings.

“Working with Depots”

Explains how you work with each type of depot to organize and archive your work.

“Securing the Server”

Explains how you encrypt client-server communication and how you authenticate and authorize users.

“Backup and Recovery”

Explains how you back up and recover versioned data and Perforce meta data.

“Monitoring the Server”

Describes how you can monitor the Perforce server and its use of system resources: disk space, processes, commands, locked files, user file access, and logging.

“Managing the Server and Its Resources”

Provides information about managing code sharing, distributed development, users, changelists, disk space, processes, and Windows deployments.

“Tuning Perforce for Performance”

Outlines some of the factors that can affect the performance of a Perforce server, provides a few tips on diagnosing network-related difficulties, and offers some suggestions on decreasing server load for larger installations.

“Customizing Perforce: Job Specifications”

Explains how jobs enable users to link changelists to enhancement requests, problem reports, and other user-defined tasks. Describes the template that defines jobs and explores the use of third party defect tracking systems.

“Using triggers to customize behavior”

Explains how you use different kids of scripts to customize the behavior of server processing.

Perforce Server (p4d) Reference

Provides complete reference information for the command used to start and configure the Perforce server.

Moving a Perforce server to a new machine

Explains how you move an existing Perforce server from one machine to another .

License Statements

Provides license information.

What's new in this guide for the 2015.2 release

This section provides a list of changes to this guide for the Perforce Server 2015.2 release. For a list of all new functionality and major bug fixes in Perforce Server 2015.2, see the Perforce Server 2015.2 Release Notes.

Major changes

Complete reorganization of this manual

This manual has been reorganized to make material easier to find and to use.

LDAP authentication configuration

You can fine tune LDAP integration using three new options:

  • Set the downcase option to specify that user names should be downcased from the directory on an LDAP sync.

  • Set the getattrs option to specify that the Fullname and Email fields should be populated for autocreated users.

  • Set the realminusername option to specify that the realm should be taken for the SASL user name if it is in UNC or UPN format.

See Creating an LDAP configuration for more information.

Journal rotation trigger

journal-rotate triggers allow you to run maintenance routines on servers after the journal has been rotated, either while the database tables are still locked or after the locks have been released. These triggers are intended to be used on replicas or edge servers where journal rotation is triggered by journal records. The server must be running for these triggers to be invoked. See Triggering on journal rotation for more information.

Push trigger

Push triggers allow you to customize processing when using p4 push, p4 fetch, or p4 unzip commands. See Triggering on pushes and fetches for more information.

Read only clients

The readonly type has been added to configure a client that is appropriate for automated build scripts. Using this type of client prevents db.have table fragmentation and improves performance. For more information, see Using read-only clients in automated builds.

Blocking clients

You can set the rejectList configurable to specify the clients whose connection requests will be rejected by the server. See Rejecting client connection requests for more information.

Minor changes

scripts and daemons

If the API level is 79 or greater, canonical filetypes are now displayed by default for all commands that display filetypes. If the API level is 78 or lower, filetype aliases are displayed instead. If your script depends on the display of filetype aliases, you will need either to change the API level or to change your script.

The change review daemon ( and has been deprecated. We recommend you use Swarm notifications as the preferred notification mechanism. These are described in the "Notifications" section of the Swarm Administration Guide.

Documentation about daemons has been removed from the manual. As the number and types of triggers have grown, it is now the case that triggers can perform the function of any daemon. Please use triggers to customize server processing behavior.

Log information about login attempts

Use the new auth.csv structured log to log the results of p4 login attempts. If the login failed, the reason for this is included in the log. Additional information provided by the authentication method is also included.

See Enabling structured logging for more information.

P4d -xu, P4d -jd

The -xu option will no longer database upgrades automatically if there are fewer than 1000 changelists.

The -jd option now can also be used with non-journaled tables.

New commands for service users

Service users may now run the p4 logparse, p4 logschema, p4 logstat, p4 logtail, and p4 servers commands.

Control display of user prompt for data collection

See Disabling user metrics collection prompt for more information.

Improve performance with parallel submits and syncs

See Using parallel processing for submits and syncs for more information.

Configuring P4V-Swarm connections.

See Configuring Swarm connections

Helix documentation

The following table lists and describes key documents for Helix users, developers, and administrators. For complete information see the following:

For specific information about…

See this documentation…

Introduction to version control concepts and workflows; Helix architecture, and related products.

Introducing Helix

Using the command-line interface to perform software version management, working with Helix streams, jobs, reporting, scripting, and more.

Helix Versioning Engine User Guide

Basic workflows using the P4V, the cross-platform Helix desktop client.

P4V User Guide

Working with personal and shared servers and understanding the distributed versioning features of the Helix Versioning engine.

Using Distributed Versioning with Helix

p4 command line (reference).

P4 Command Reference, p4 help

Installing and administering the Helix versioning engine, including user management, and security settings.

Helix Versioning Engine Administrator Guide: Fundamentals

Installing and configuring Helix servers (proxies, replicas, and edge servers) in a distributed environment.

Helix Versioning Engine Administrator Guide: Multi-site Deployment

Installing and administering a Helix server cluster for high performance and automated failover.

Helix Versioning Engine Administrator Guide: Cluster Management

Helix plug-ins and integrations.

IDEs: Using IDE Plug-ins

Defect trackers: Defect Tracking Gateway Guide

Others: online help from the Perforce menu or web site

Developing custom Helix applications using the Helix C/C++ API.

C/C++ API User Guide

Working with Helix in Ruby, Perl, Python, and PHP.

APIs for Scripting

Syntax conventions

Helix documentation uses the following syntax conventions to describe command line syntax.




Monospace font indicates a word or other notation that must be used in the command exactly as shown.


Italics indicate a parameter for which you must supply specific information. For example, for a serverid parameter, you must supply the id of the server.


Square brackets indicate that the enclosed elements are optional. Omit the brackets when you compose the command.

Elements that are not bracketed are required.

Ellipses (…) indicate that the preceding element can be repeated as often as needed.

element1 | element2

A vertical bar ( | ) indicates that either element1 or element2 is required.

Please give us feedback

We are interested in receiving opinions on this manual from our users. In particular, we'd like to hear from users who have never used Perforce before. Does this guide teach the topic well? Please let us know what you think; we can be reached at .

If you need assistance, or wish to provide feedback about any of our products, contact .