Comparison between Monotone and Perforce

Back to main page

   
SCM feature: Monotone Perforce Add to comparison: +CVS
+AccuRev
+Aegis
+AllChange
+Arch
+Bazaar
+BitKeeper
+ClearCase
+CM+
+CMSynergy
+Co-Op
+Darcs
+Git
+LibreSource Synchronizer
+Mercurial
+OpenCM
+PureCM
+SourceAnywhere
+Subversion
+Superversion
+Surround SCM
+svk
+Team Foundation Server
+Vesta
+Visual SourceSafe
Atomic Commits
Yes. Yes. Commits are atomic.
Files and Directories Moves or Renames
Yes. Renames are supported. Not directly (you copy and then delete but it manages to keep track of the branch)
Intelligent Merging after Moves or Renames
Unknown. FILL IN. 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.
File and Directories Copies
Yes. Copies are supported Copies are supported (though, because of its architecture, I don't know how well)
Remote Repository Replication
Yes. Yes. Via the Perforce Proxy (P4P) tool.
Propagating Changes to Parent Repositories
Yes. Unknown. Probably Not.
Repository Permissions
Yes. It is possible to restrict incoming changes from certain sources to be performed only in certain parts of the repository. Yes. (more than half a dozen of permission levels that can be set in a file by file basis)
Changesets' Support
Yes. Changesets are supported.
Tracking Line-wise File History
Yes, as of version 0.19. Yes, an annotation feature is present.
Ability to Work only on One Directory of the Repository
It is possible to commit changes only in a subset of the tree. However, one must extract the entire tree to work on it. Yes. Changes to a sub-directory of the repository are supported.
Tracking Uncommited Changes
Yes. In a similar fashion to CVS. Yes.
Per-File Commit Messages
Yes. It is possible to attach a comment to a certain file at a certain revision. No. Commit messages are per change.
Documentation
Good. There's an overview and tutorial written in Texi, and a man page. The client supplies documentation for every command. Very Good (html and command line help)
Ease of Deployment
Excellent. It is possible to copy or compile the executable to the user's machine, without any configuration or external dependencies. Very good. Perforce is very easy to deploy.
Command Set
Tries to follow CVS conventions, but deviates where there is a different design. Very extensive but not compatible with CVS.
Networking Support
Good. Uses a custom protocol called "netsync". Good. (single TCP/IP socket)
Portability
Excellent. Executable is portable across all UNIXes and Win32. Excellent. Runs on UNIX, Mac OS, BeOS and Windows.
Web Interface
No. Yes, P4Web.
Availability of Graphical User-Interfaces.
No GUIs are available. Yes, P4Win and others based on the available libp4 library.
 


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.