Perforce Integration

Top  Previous  Next

This section describes Code Collaborator integration with Perforce:

The Code Collaborator server can pull submitted changelists directly from your Perforce server for review, without users needing to install any client programs.  It can also enforce file content access permissions (protections) configured in Perforce.

GUI Client

The GUI Client can upload Changelists into Code Collaborator.  You can upload Pending or Submitted Changelists, but you cannot upload the Default Changelist. The GUI Client can also upload arbitrary Perforce diffs, files in a Branch, or the difference between two Labels or dates.

The Command Line Client can upload Changelists into Command Line Client.  You can upload Changelists Pending or Submitted Changelists, but you cannot upload the Default Changelist.  The Command Line Client can also upload arbitrary Perforce diffs.

Eclipse Plug-in

The Eclipse Plug-in can upload Perforce changelists.  Just right-click on any changelist entry in Eclipse, either before or after it is submitted.

P4V and P4Win

Code Collaborator comes with plug-ins to P4V and P4Win that let you right-click on any changelist (pending or submitted) and add to a new or existing review.

Perforce Server Triggers

Perforce server-side triggers can ensure code is reviewed.  There is also a trigger to automatically update a changelist with information about the review of that changelist.

Perforce Changelist Renumbering

Perforce nearly always renumbers changelists upon submission, but when you're doing pre-commit reviews Code Collaborator always has the pre-submit number. We've included a script you can customize that will ask Perforce what a changelist's number was before it was submitted, and update changelists in Code Collaborator to have the new number. This requires a Code Collaborator client and server 5.0.5005 or better, and a Perforce client and server 2007.3 or later. This script is intended to be run periodically via cron or a similar task scheduler. Perforce Changelist Renumbering Script

Supported Versions

Our integration uses your own Perforce command-line client (p4) to communicate with the server.  We support all client and server versions later than 2002.1.  Our Eclipse Plug-in supports Perforce's eclipse plugin version 2009.1.209672 or later.

Because we use client applications already present on your computer, we support all protocols, authentications, proxies, and other client configuration options you are currently using.  This includes configuration from environment variables, $P4CONFIG files, p4 set registry values, and so forth.

Support for Branch / Integrate

Code Collaborator fully supports Perforce's file branching and integration semantics.

If files in a changelist are marked for branching, they are not considered "changed."  The file content itself is not changed; only the file paths are being changed.

If files in a changelist are being integrated, this works just like a regular change.  Many customers choose to review integrations especially carefully since the changes might interact in unexpected ways.

Support for Copy / Move

Code Collaborator fully supports Perforce's file copy/move semantics.  Thus, if a file is copied or moved rather than added from scratch, it will show up that way in the various user interfaces.

Support for Directory-level New/Delete/Copy/Move

Code Collaborator partially supports Perforce's concept of directories (not just files) being altered.

All files underneath the directories in question will be scanned, uploaded and represented properly in the GUI.  The directories themselves will not be shown in any GUI.