SCM Comparisons

How Perforce Compares with Other SCM Systems

The following documents compare and contrast the most significant differences between Perforce 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 2008.1) and Subversion (version 1.5.2), focusing on branching and merging, system architecture, and integration with related tools.
Perforce and Visual SourceSafe (VSS) [PDF] Compares Perforce (version 2008.1) and Microsoft Visual SourceSafe 2005, focusing on qualitative aspects such as system architecture, performance, and usability.

SCM Conversion Resources

Reference material for planning and implementing an SCM migration to Perforce. Custom services are also available if you would like assistance with the design and implemention of your SCM migration.
Item Description
Migration Planning Guide:
IBM Rational ClearCase to Perforce

PDF
ClearCase-to-Perforce migration projects vary greatly in scale and complexity. This document tells you how to plan to migrate from ClearCase to Perforce and discusses strategies for importing file history.
Perforce Knowledge Base: Conversions Visit this section of the Perforce Knowledge Base for useful articles on various methods for converting to Perforce from other source code control systems.
Custom Services:
Legacy SCM System Migrations
Perforce Consulting offers custom services for legacy SCM system migrations and can help you to replace an SCM system for a single team, or establish Perforce as your corporate standard SCM system across multiple business units. Consultants are available to provide the assessment, project management, and technical expertise for a variety of SCM systems and can help to ensure your migration goes smoothly.

SCM Conversion Utilities

Toolsets and technical information for converting from other SCM systems to Perforce.

Unsupported Program icon Not maintained by Perforce, but technical information is available.

Item Description
Unsupported Program icon CVS to Perforce Converter This set of Perl scripts converts CVS archives to Perforce, preserving the original times and authors. Individual file revisions are grouped as much as possible into atomic Perforce changelists. The converter handles Attic/ and .cvsignore, and has flexible support for branching. See the CVS2P4 README for more details. Available for download from the Perforce Public Depot.
Unsupported Program icon Serena® PVCS® to Perforce Conversion Tool

This set of Perl scripts converts PVCS archives to Perforce, preserving the original times and authors. Labeled branches are converted into branched directories, and individual file revisions are grouped as much as possible into atomic Perforce changelists. See the PVCStoP4 Project home page for more details and download links.

PVCS and Serena are a registered trademarks of SERENA Software, Inc.

Unsupported Program icon SVN to Perforce Converter

This tool converts Subversion archives to Perforce, preserving change history as accurately as possible. This conversion can result in multiple Perforce changesets for a given Subversion revision. See the P4 Convert README for more information.

p4convert-svn is available on the following platform(s):
FreeBSD 5.4 x86
Linux 2.4 x86
Linux 2.6 x86
Linux 2.6 x86_64
Windows x86

Builds for other platforms may be requested from Perforce Support.

Unsupported Program icon Microsoft Visual SourceSafe (VSS) to Perforce Conversion Tool This set of Perl scripts converts VSS archives to Perforce, preserving the original times and authors. Branches are translated verbatim, and individual file revisions are grouped as much as possible into atomic Perforce changelists. See the VSStoP4 Project home page for more details and download links.

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.

All trademarks or registered trademarks used herein are property of their respective owners.