Track a changelist’s identity from server to server

As described earlier, a changelist gets renumbered each time it gets fetched, pushed, or unzipped; as a result, it quickly becomes difficult to determine which changelist is which across a series of servers. Changelist 12 on one server may not be the same as changelist 12 on another server.

Helix Server includes a global changelist ID feature which allows you to assign to a changelist a permanent ID that remains the same from server to server. This is an opt-in feature. There are two workflows for enabling global changelist IDs. They are summarized in the following subsections:

Workflow 1: Let Helix Server generate global changelist IDs

The majority of Helix Server users will likely choose to have global changelist IDs system-generated.

To have Helix Server generate the IDs for you, follow these steps:

On a personal server:

  1. Run the p4 configure command to set submit.identity to whichever of the three possible formats you prefer:

    • uuid: a universally-unique identifier
    • checksum: a checksum
    • serverid: a combination of the serverid + changelist number

    This causes Helix Server to generate a global changelist ID and write it to the Identity field of the change spec for the changelist in question, each time a change is submitted. For more information, see the description of the submit.identity configurable in the "Configurables" chapter of the Helix Core Command-Line (P4) Reference.

  2. Run p4 submit to submit the changelist. Once you’ve done this, the changelist ID appears in the Identity field of the change spec.
  3. Run p4 describe changelistnumber to find out what changelist ID was generated.

Workflow 2: Enter global changelist ID manually

Choose this workflow if you want to customize your global changelist ID names. For example, you may want to name a changelist according to the bug it corresponds to in your bug database.

On a personal server:

  1. Run p4 submit to submit your changelist.
  2. Edit the change spec to set the value of the Identity field to the desired value.
  3. Run the p4 push, p4 fetch, or p4 unzip command.

On the shared server:

  • Run p4 describe -I changelistID to retrieve the changelist number of the changelist that was pushed, fetched, or unzipped.