Remote depots facilitate the sharing of code by enabling independent organizations with separate Perforce installations to integrate changes between those Perforce installations. The use of remote depots requires coordination between two organizations, namely the site receiving the code drop and the site providing the code drop. In most cases, the following three things must be configured:
- The Perforce administrator at the receiving site must create a remote depot that points into the namespace of a local depot on the providing site's Perforce server.
- The Perforce administrator at the providing site must configure the Perforce server to allow the receiving site's remote depot to access the providing site's local depot.
- The configuration or integration manager at the receiving site must integrate the desired files from the remote depot into a local depot under his or her control.
For the example below, the providing site is XYZ Software and the receiving site is ABC Graphics.
Providing site setup
The Perforce administrator at XYZ Software should modify the protections table to allow access by the ABC Graphics remote depot. At a minimum, the XYZ Software Perforce administrator should preemptively deny access to user remote across all depots from all IP addresses. For example:
list user remote * -//...
And grant read access to user remote for only those areas of the Perforce server namespace into which code drops are to be placed (//depot/for-abc-graphics/... in this example).
read user remote 192.168.41.2 //depot/for-abc-graphics/...
The protections table entry above grants access only to the IP address of the ABC Graphics Perforce server that will receive the code drop (192.168.41.2).
Receiving site setup
The Perforce administrator at ABC Graphics should create a remote depot using the p4 depot command:
p4 depot from-xyz-software
The Type: should be set to remote and the remote server's name and listening port should be specified in the Address: field. Set the Map: field to point to the desired location in the remote depot's physical namespace.
Perforce users at ABC Graphics do not need to access files on the providing server by means of the remote depot mechanism so deny access for the remote depot to all ABC Graphics users. Grant read access for the remote depot to your integration or build managers. The only user at ABC Graphics who requires access to the remote depot is the user (in this example, adm) who performs the integration from the remote depot to the local depot. To set these limits, the ABC Graphics Perforce administrator adds the following lines to the Perforce protections table:
list user * * -//from-xyz-software/...
read user adm * //from-xyz-software/...
The integration or build manager integrates files from the remote depot into a suitable area of the local depot where regular Perforce users can access them:
p4 integ //from-xyz-software/... //depot/codedrops/xyz-software/...
The Remote depots and distributed development section of the Perforce System Administrator's Guide provides additional details on configuration and use of remote depots.
Creating Vendor Branches for Third Parties for additional information on managing third party code drops.