SCM Comparisons

How Perforce Compares with Other SCM Systems

The following documents compare and contrast the most significant differences between Perforce (version 2005.2) and other SCM systems. Instead of comparing each available feature, they focus on significant qualitative aspects such as administration, atomic transactions, and usability.

Title Overview
Perforce and ClearCase [PDF] Compares Perforce (version 2008.1) and IBM Rational ClearCase (version 7.002), focusing on qualitative aspects such as distributed development and administration, as well as quantitative metrics such as the time it takes to branch a codeline.
Perforce and CVS [PDF] Compares Perforce (version 2005.2) and CVS (version 1.11.21), focusing on the differences in performance, atomic transactions, and distributed development.
Perforce and Microsoft Team Foundation Server (TFS) [PDF] Compares Perforce (version 2006.2) and Microsoft Visual Studio 2005 Team Foundation Server, focusing on qualitative aspects such as usability and administration, as well as quantitative metrics such as the time it takes to branch a codeline.
Perforce and Subversion [PDF] Compares Perforce (version 2005.2) and Subversion (version 1.3), focusing on usability, system architecture, and integration with related tools.
Perforce and Visual SourceSafe (VSS) [PDF] Compares Perforce (version 2005.2) and Microsoft Visual SourceSafe (version 6), focusing on qualitative aspects such as system architecture, performance, and usability.

Glossary of Terms

Different SCM systems sometimes use different terminology to refer to familiar SCM commands and functions. The following table lists common Perforce commands/features and maps them to terminology/features used by some other SCM systems.

Perforce calls it... Other SCM systems might call it... Remarks
add check in, extract part The first time you place a file in the depot, you add it.
annotate annotate Displays the lines of a file along with the number of the revision that introduced each line. It is functionally similar to the CVS annotate command, but with the option to show deleted lines and note both the revision of introduction and deletion.
branch codeline, project, stream A collection of related files that can be managed as a unit. When you create branches in Perforce, the relationship between source and target files (in other words, the ancestry of files) is preserved. 
changelist changeset Perforce enables you to group related changes to multiple files into a single atomic transaction.
client workspace project, view, sandbox, family + release + component + work area A directory structure on your computer where you work with local copies of files that are under source control. This workspace can contain one or more projects and codelines.
depot repository, archive, VOB The central storage for your source code and related files. The Perforce Server manages one or more depots, which are mapped to client workspaces through the client-server network connection. The server filesystem does not need to be mounted by the client computer. 
edit check out (for edit) With Perforce, multiple users can open the same file for edit, then resolve the differences to ensure that no changes are overwritten.
head revision tip revision, head The most recent revision of a file.
integrate merge, branch To propagate selected changes from one codeline to another.
job work order, change request, ECO A work request, such as a bug report or enhancement request. Using Perforce, you can associate a job with the changelists that record the work the job required.
label baseline, tag A named list of user-specified revisions of files. 
merge merge Resolving file conflicts by combining the contents of two conflicting file revisions into a single file or accepting one of the conflicting files and discarding the other.
resolve merge Reconciling the differences between two revisions of a file. 
revert uncheckout, undo checkout, unlock revision or part Discard any changes you made to files on your client computer and copy a version from the depot (shared repository) to your client workspace.
submit check in, put After you change a file in your client workspace, you submit your change to the depot.
sync check out tip, refresh, extract part, get version Copy files from the depot (shared repository) to your client workspace.