Client integration

P4V and P4VS can now integrate with Swarm. To indicate how these applications should connect with Swarm, Swarm sets the P4.Swarm.URL property set in the Helix Versioning Engine. P4V and P4VS read this property, and if set, they connect to the specified URL to make Swarm API calls. If the property is unset, Swarm integration features are disabled.

When P4.Swarm.URL is set, P4V provides the following integration features:

  • Request a review: requests a review for pending or committed changelists.

  • Update a review: updates a review from the current state of a pending changelist. This works for changelists that are already associated with a review, or for unassociated changelists.

  • Open review in Swarm: opens the review associated with the selected changelist in your system's default web browser.

  • Review Id and State columns: adds Review Id and Review State columns to both the Pending and Submitted tabs.

By default, the first Swarm worker auto-detects the URL it is running under and sets P4.Swarm.URL accordingly.

For customized Swarm installations, the auto-detected URL may not use the correct hostname or port. In these scenarios, you can disable the URL auto-detection by editing the SWARM_ROOT/data/config.php file and setting the auto_register_url item to false in the p4 configuration block. For example:

<?php
    'p4' => array(
        'auto_register_url'  => false,
    ),

If you choose to disable this feature, you should manually set the P4.Swarm.URL property in the Helix Versioning Engine to the URL for your Swarm installation:

$ p4 property -a -n P4.Swarm.URL -v https://myswarm.url:port/

Replace https://myswarm.url:port/ with the URL for your Swarm installation.

Note

P4V uses an integration timeout, specified in the P4.Swarm.Timeout property, to limit delays in the P4V user interface. The default timeout is 10 seconds.

To change the integration timeout, run:

$ p4 property -a -n P4.Swarm.Timeout -v 10

Replace the 10 with the desired timeout in seconds. Increasing the timeout could cause notable delays in the P4V user interface, and decreasing the timeout could cause sporadic integration failures if Swarm's API responses take longer than the specified timeout.