Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Option

Description

Anchor
perforcePortOptionDescription
perforcePortOptionDescription
Port

Specify the Perforce server address. The format is host:port.
(info) For specific environments, P4Host can be specified in the Workspace options below for any  type of checkout. 

Anchor
perforceStreamOptionDescription
perforceStreamOptionDescription
Stream

Click this radio button to specify an existing Perforce stream. TeamCity will use this stream to prepare the stream-based workspace, and will use the client mapping from such a workspace.

TeamCity supports deeper directory structure within the root depot: depots with a depth of //DEPOTNAME/1/2/n can be specified in this field.
Prior to TeamCity 2017.2, TeamCity supports streams stored one level below the depot name: the format is //streamdepot/streamname.

 Parameters are supported. For the StreamAtChange option, use the Label to checkout field.

Warning
titlePerformance impact

When this option is used with the checkout on the server mode, the internal TeamCity source caching on the server side is disabled, which may worsen the performance of clean checkouts. Also, with this option, snapshot dependencies builds are not reused. (TW-41898 - fixed in TeamCity 2017.1)

Note
titleCheckout rules limitations

When Perforce Streams are used with the checkout on the agent, simple checkout rules like . => sub/directory are supported. Exclude checkout rules, multiple include rules, or rules like aaa=>bbb are not supported.

Anchor
branchStreams
branchStreams
Enable feature branches support (experimental) - select this check box to specify branch streams you want to be monitored for changes in addition to the default one. Enter / Edit the branch specification as a newline-delimited set of rules. The syntax is  +|-:stream_name (with the optional * placeholder). 

Note
titleTask stream limitations

When task streams are used for feature branches, TeamCity may miss some changes in task streams until a modifying commit is made, which means that merge commits from the parent stream are not detected until a 'real' commit to the task stream is made (TW-44765).

Anchor
perforceClientOptionDescription
perforceClientOptionDescription
Client

Click this radio button to directly specify the client workspace name. The workspace must be already created by a Perforce client application like P4V or P4Win. Only the mapping rules from the configured client workspace are used. The client name is ignored.

Warning
titlePerformance impact

When this option is used with the checkout on the server mode, the internal TeamCity source caching on the server side is disabled, which may worsen the performance of clean checkouts. Also, with this option, snapshot dependencies builds are not reused. (TW-41898 - fixed in TeamCity 2017.1)

Anchor
perforceClientMappingOptionDescription
perforceClientMappingOptionDescription
Client Mapping

Click this radio button to specify the mapping of the depot to the client computer.
If you have Client mapping selected, TeamCity handles file separators according to the OS/platform of the build agent where a build is run. To enforce specific line separator for all build agents, use Client or Stream with the LineEnd option specified in Perforce instead of Client mapping. Alternatively, you can add an agent requirement to run builds only on a specific platform.

Info
titleTip

Use team-city-agent instead of the client name in the mapping.

Example:

Code Block
//depot/MPS/... //team-city-agent/...
//depot/MPS/lib/tools/... //team-city-agent/tools/...

(warning) Prior to TeamCity 10.0 editing the client mapping for a Perforce VCS root resulted in a Clean Checkout before the next build. A workaround was provided.

Now Clean Checkout on a client mapping change is not enforced for the agent-side checkout in the following cases:

  • when a Perforce client name is used. Changing the Perforce client mapping for the client will not result in a clean checkout
  • when a Perforce stream is used, changing the stream name while keeping the same stream root will not result in a clean checkout

(warning) If the direct client mapping is changed, a clean checkout will be forced unless the teamcity.perforce.enable-no-clean-checkout internal property is set on the server.

Anchor
perforceUserOptionDescription
perforceUserOptionDescription
Username

Specify the user login name.

Anchor
perforcePasswordOptionDescription
perforcePasswordOptionDescription
Password or Ticket

Specify the password or ticket.

If this field is specified, TeamCity

  • sets this value as P4PASSWD environment variable for executed perforce commands
  • uses this field as a password for p4 login command if password-based authentication is disabled on the perforce server

If the password is not specified at all, TeamCity relies on an existing p4 ticket for the current user (p4ticket.txt), and if the ticket is not present, it will fail.

The ticket file, should be present on all build agents where TeamCity runs perforce builds for this VCS root and on the TeamCity server (as the server also executes perforce commands)

Anchor
perforceTicketBasedAuthenticationOptionDescription
perforceTicketBasedAuthenticationOptionDescription
Ticket-based authentication

 

Check this option to enable ticket-based authentication. (info) This option is enabled by default and not displayed.

...