Managing branch specifications

In Perforce, a codeline is a set of related files — for example, all the source code required to build your software product. Copying an edit from one file set to the other is called integration. Copying a set of files is called making a branch or branching. Branching is performed using the Integrate feature. You can perform simple branches using a file specification.

To ensure that complex branching is done in a controlled manner (for example, to prevent typographical errors when entering target directories or to make sure that complicated branches are performed correctly), you can create a branch specification, which specifies the relationship between two codelines. When you branch, you can use the branch specification instead of a file specification. Branch specifications are displayed in the Specs pane on the Branches tab.

To change a branch specification, double-click it and enter your changes in the Branch form. Modify the View field to reflect the relationship between source and target codelines. For example, to create release 2 of Elm from the code in your main codeline, you might use the following view:

 //depot/elm_proj/... //depot/elm_r2.0/...

To create a branch specification, choose Specs>New>Branchspec... and enter the required information. To prevent the specification from being changed by other users, check locked. To confine integration to closely related files, choose direct; to enable integration between distantly related files, choose indirect.

To delete a branch specification, click the specification you want to delete, then select Specs>Delete Branch.

To integrate using a branch specification:

  1. Right click the files you want to integrate and choose Integrate... The Integrate dialog is displayed.
  2. Click the Branch Specification tab.
  3. From the Branch drop-down list, choose the branch specification you want to use. Specify other options as desired:
  4. In the Target field, specify where you want the source files integrated. The target must be a path that contains some or all of the paths identified in the branch specification. In other words, the target can be a subset of the path specified by the branch specification.
  5. To preview the results of the operation, click Preview. To integrate the files using the selected branch specification, click Integrate.