Perforce Public Knowledge Base - PVCS to Perforce
Downloads Blog Company Integrations Careers Contact Try Free
Menu Search
Reset Search



PVCS to Perforce

« Go Back



Converting from PVCS to Perforce is accomplished by using the PVCStoP4 conversion scripts found in the Perforce Workshop,

The PVCStoP4 README describes the operation of PVCStoP4. Understanding how the script approaches the conversion can solve many problems. The README is located at

This article describes common problems encountered during PVCS to Perforce conversions, and their solutions.

Problem #1

vlog fails to return proper information


Verify that the pvcs executable is set in front of sccs in your path. Conversions have encountered fundamental startup errors because the vlog command was interpreted as an sccs command.

Problem #2

File names with spaces


Users have reported success with the workarounds below:

Do not check for double-quotes on the root path. Change the following line:

unless $dir =~ s@^\Q$convert::root\E(.*)/[^/]+$@$1@i;
unless $dir =~ s@^$convert::root(.*)/[^/]+$@$1@i;

Do not add double-quotes to the root path. Change the following line:
  Root: \"$convert::client_root\"
  Root: $convert::client_root

Problem #3

Client Root with forward slashes on Windows


From the command line on which you are running the script, run p4 client and change the Root field to backslashes. This should be the same 'pvcs' client that is being used by the script; use p4 client pvcs to remove any ambiguity about which client is being changed. For good measure, run p4 set P4CLIENT=pvcs

Then, revert the current changelist #1 that was created by the converter, for example:

p4 revert //...
and delete changelist #1, eg:
p4 change -d 1

Then, restart the script from the beginning. Again, make sure the P4CLIENT is set first in your environment (type p4 set to confirm that P4CLIENT=pvcs). The 'pvcs' client should be defined on your Perforce server prior to running the script.

By having the Perforce client already created and defined in your environment, the conversion script should then skip creation of the client with forward slashes.

Again, you need to look at the Perforce server and make sure that there are no changelists with files opened for add. If necessary, revert any files and delete any pre-existing changelists.

General Troubleshooting

If the converter fails, you can typically determine the point of failure either by looking at the output on STDOUT or by looking at the converter log file and/or the intermediate metadata files it creates.

If you still encounter problems, then please send the output log, the config file and the compressed contents of the \pvcsconv\metadata directory to

Related Links



Was this article helpful?



Please tell us how we can make this article more useful.

Characters Remaining: 255