Perforce Public Knowledge Base - Mapping CVS Terms and Commands to Perforce Part 1
Downloads Blog Company Integrations Careers Contact Try Free
Menu Search
Reset Search



Mapping CVS Terms and Commands to Perforce Part 1

« Go Back



A comparison of features, terminology, and commands in Perforce and CVS. 


This comparison is for the experienced CVS user who is new to Perforce. The following comparisons are high-level and intended to help you take advantage of your CVS knowledge to learn Perforce


The following table lists some general observations about CVS functionality compared to Perforce:

In CVSIn Perforce
You perform a checkout to create or update a working directory. The working directory contains copies of the source files specified by modules.You perform a sync to update your client workspace according to the client workspace mapping you are using.
By default, you make changes and then tell CVS about them (unless "watch" is turned on - then you must first open a file(s) for edit before changing it).You open a file(s) (add, edit, delete, integrate, and so on), make the change(s) and then submit the changes.
Changes can be submitted for multiple files at once, but CVS does not ensure or track that the changes were submitted together.Changes are grouped into changelists - an atomic change transaction for a set of changes all submitted together (along with a user derived description of the changes made).
"modules" and/or operating system wildcards are used for aggregate file operations.filespecs (file specifications) are used for aggregate operations.
CVS ignores file permissions and ownerships when storing files in the repository.File type modifiers can be set and tracked in the metadata on the server machine.
You lock files using admin -l.You lock files using the lock command or the +l filetype modifier in the add / edit & reopen commands (sets the exclusive open filetype flag).
You can mark important file revisions with tags.You can mark/tag important file revisions by branching them to a release or QA branch line, or tagging them with labels.
You control access to the repository by changing permissions on directories in the CVSROOT path (users need write permission to check out files).You control access by assigning permissions ( protect ) to users for all or part of the depot(s).
You can configure multiple repositories and access them with the global -d option.You can set up multiple repositories (depots) for a server. Users use a client view specification to map the different depots or parts of depots into their workspace (users can have multiple client views). This can also include access to (read only) remote depots on other perforce servers. Or, you can use the -p global option to access different servers as well.
Supports text file type. Binary files are stored by turning off line-ending conversion and keyword expansion.Supports seven base file types: text files, binary files, unicode files, native apple files on the Macintosh, Mac resource forks, UTF16 files, and UNIX symlinks. File type modifiers are then applied to the base types allowing for support of RCS keyword expansion, file compression on the server, and more. Perforce attempts to detect the file type and set it accordingly (which can be overridden). By default, binary files are stored compressed


The following table compares CVS terms to their Perforce equivalents.

CVS termPerforce term
merge files/branchesintegrate
modefile type
reserved checkoutlock or exclusive-open
work treeclient workspace


Related Links



Was this article helpful?



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

Characters Remaining: 255