| 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. |
|