Perforce Server Configuration
1. Stream Configuration
Section titled “1. Stream Configuration”Stream Layout
Section titled “Stream Layout”Our Horde deployments are configured to follow The Epic Way of organizing a P4 server. Horde uses a Perforce Stream or Virtual Stream to sync the project. At the top level of this stream should be the Engine directory as well as directory containing your project’s content. You’ll provide a stream to Universal Foundry, for example: //depot/my_game. Within that stream, should be //depot/my_game/Engine such that when syncing the stream, a Engine folder is created at the root.
If the stream you use by default is configured differently, create a new Virtual Stream that has the required layout.
If this won’t work for your team, please reach to support@universalfoundry.io.
Stream Contents
Section titled “Stream Contents”Horde is strict about what is included and not included the stream it uses to run jobs. In particular, it is important that files which are generated or modified during the build process are not included in the stream Horde uses. This restriction ensures produced builds are consistent and enables Horde to efficiently manage incremental workspaces.
2. Partitioned Workspaces
Section titled “2. Partitioned Workspaces”Partitioned workspaces need to be enabled for your server in order for Horde to efficiently access Perforce. This is a standard best-practice.
Checking Current Settings
Section titled “Checking Current Settings”You check the value of the relevant server setting by doing:
p4 configure show client.readonly.dir
If Perforce reports back that the value of client.readonly.dir is set then you have partitioned workspaces enabled. No further action is needed.
If client.readonly.dir is not set
Section titled “If client.readonly.dir is not set”The value of client.readonly.dir is a relative or absolute directory on the server. If the value is set and the directory does not exist, a new directory will be created on your P4 server. You can set the value by running a p4 configure set command and assigning client.readonly.dir to a valid directory name. For example this command:
p4 configure set client.readonly.dir=part-db-have
is what is recommended by the P4 documentation.
You can read more about the client.readonly.dir setting in these documents:
- https://www.perforce.com/manuals/cmdref/Content/CmdRef/configurables.alphabetical.html#client.readonly.dir
- https://www.perforce.com/manuals/p4sag/Content/P4SAG/performance.readonly.html
3. Encryption
Section titled “3. Encryption”We require that the Perforce have SSL enabled. This is usually already set. The Perforce host string should be of the form ssl:p4.example.com:1666.
4. IP Whitelisting
Section titled “4. IP Whitelisting”If your Perforce server can only be accessed via a set of whitelisted static IPs, contact support and we will update your deployment to support that and add a list to your dashboard.