What is p4convert for?

The p4convert conversion tool imports data from Subversion or CVS and reconstructs the file revision history in Perforce. For CVS the data is read from the CVSROOT and for Subversion data is read from a dump file. Data is added to Perforce in one of two ways:

Import Mode (front door)

Revisions are imported into a running Perforce Server. The Perforce Server could be new or contain existing data, but it must be running. Subversion revisions are added sequentially; file content is 'imported' and metadata such as file attributes, descriptions, dates and usernames are added to the Perforce changelist. CVS data is sorted into changeslists, based on available metadata such as date/time, author, change descriptions and file actions.

The recommended use of Import Mode is to start a new Perforce server to import each set of changes into a Perforce changelist. Using this method will produce a one-to-one mapping of Subversion revision numbers to Perforce changelists and a reproducible set of CVS changes. The new Perforce server can be used in isolation to confirm the success of the migration and then merged with an existing Perforce Server using the PerfMerge++ tool.

Convert Mode (back door)

Revisions are converted in full, creating a Perforce journal and set of archive files. Once replayed, the resulting conversion is just as if the changes had always been in Perforce. The results can be merged into an existing Perforce Server using the PerfMerge++ tool. The Import Mode is considered to be the safest method as all files are imported through a Perforce Client. Convert Mode is significantly faster, but requires an understanding of Perforce database administration.

Convert Mode is an advanced feature and should only be attempted by a Perforce expert familiar with replaying and upgrading databases. Incremental conversions are not supported using Convert Mode; however Import Mode can be used after a Convert Mode conversion to update the migration.

Incremental Updates (front door)

Incremental Subversion updates are possible only using the Import Mode where new revisions from Subversion are imported into Perforce. However, no changes should be made to the import area of the Perforce Server or conflicts may occur.

Incremental CVS imports are not currently supported in either Import or Convert Mode.