Comparison between Perforce and Vesta

Back to main page

   
SCM feature: Perforce Vesta Add to comparison: +CVS
+AccuRev
+Aegis
+AllChange
+Arch
+Bazaar
+BitKeeper
+ClearCase
+CM+
+CMSynergy
+Co-Op
+Darcs
+Git
+LibreSource Synchronizer
+Mercurial
+Monotone
+OpenCM
+PureCM
+SourceAnywhere
+Subversion
+Superversion
+Surround SCM
+svk
+Team Foundation Server
+Visual SourceSafe
Atomic Commits
Yes. Commits are atomic.
Files and Directories Moves or Renames
Not directly (you copy and then delete but it manages to keep track of the branch) Yes. The unit of checkout/checkin is a directory tree. Files and directories can be added, deleted, and renamed between versions.
Intelligent Merging after Moves or Renames
Partial. While perforce doesn't explicitly support renames (one hsa to do a copy+delete), it does keep track of the full revision and integration history across copying, so changing a file in the copied directory and trying to merge it does the right thing. Unknown. FILL IN.
File and Directories Copies
Copies are supported (though, because of its architecture, I don't know how well) Yes. A new package/branch can be based on any existing version without affecting the past history. (This is also an O(1) operation.)
Remote Repository Replication
Yes. Via the Perforce Proxy (P4P) tool. Yes. Replication is a fundamental part of the design.
Propagating Changes to Parent Repositories
Unknown. Probably Not. Yes.
Repository Permissions
Yes. (more than half a dozen of permission levels that can be set in a file by file basis) Yes. Access permissions for each package (the unit of checkout/checkin) can be different. Access permissions for a branch can be different from the basis package.
Changesets' Support
Yes. Changesets are supported. Not exactly. Vesta uses a related concept of configurations instead, which some has similar properties.
Tracking Line-wise File History
Yes, an annotation feature is present. No, but it would be easy to implement a tool that did this, as the Vesta repository provides direct filesystem access to all versions.
Ability to Work only on One Directory of the Repository
Yes. Changes to a sub-directory of the repository are supported. Yes and no. The unit of checkout/checkin (called a package) is a directory tree. Most projects use more than one. Once created, a package must be checked out/in as a unit.
Tracking Uncommited Changes
Yes. Yes. Intermediate immutable snapshots can be taken during an active checkout (with vadvance). These intermediate versions can be treated just like checked in versions: they can be replicated to other repositories and used as the basis for branches.
Per-File Commit Messages
No. Commit messages are per change. Not exactly. The unit of checkin is a directory, and commit messages are assigned at that level, not to individual files. Since configurations are also versioned, they also have commit messages.
Documentation
Very Good (html and command line help) Quite thoroughly (HTML, man pages, published papers, a book-length research report).
Ease of Deployment
Very good. Perforce is very easy to deploy. Medium to Good. There is a detailed installation guide for setting it up using a binary kit. RPMs and Debian packages have been recently released. There are no dependencies on other software. There is a bootstrap package available to build Vesta from using "make".
Command Set
Very extensive but not compatible with CVS. The command set is unrelated to CVS. Most of the time, users use about 5 commands. Few ever need to know more than about 20 commands.
Networking Support
Good. (single TCP/IP socket) Networking is inherent to the system. The repository exports both an NFS interface and an RPC interface. The checkout and checkin tools automatically contact a remote repository when required to perform an operation.
Portability
Excellent. Runs on UNIX, Mac OS, BeOS and Windows. Good. It should be portable to any UNIX system. Currently it runs on Digital/Compaq/HP Tru64 UNIX and Linux on several different CPU architectures. Ports to Solaris and FreeBSD are planned but haven't begun yet.
Web Interface
Yes, P4Web. Yes: Vestaweb.
Availability of Graphical User-Interfaces.
Yes, P4Win and others based on the available libp4 library. No GUIs are available, but the repository has a C++ API, and it is not hard to write one. (At least three different project-specific ones have been written by users at Compaq and Intel.)
 


Information taken from Better SCM Initiative website by Shlomi Fish (shlomif@iglu.org.il).

Reorganized for usability by Alexey Mahotkin (Version Control Blog) in 2008.

 

Creative Commons License
This work is licensed under a Creative Commons License.