| SCM feature: | Mercurial | PureCM |
Add to comparison:
+CVS +AccuRev +Aegis +AllChange +Arch +Bazaar +BitKeeper +ClearCase +CM+ +CMSynergy +Co-Op +Darcs +Git +LibreSource Synchronizer +Monotone +OpenCM +Perforce +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. | Yes. File and folder renames and moves are directly supported. | |
|
Intelligent Merging after Moves or Renames |
No. the Mercurial book says: "When you use the 'hg rename' command, Mercurial makes a copy of each source file, then deletes it and marks the file as removed. " | Yes, intelligent renames are supported. | |
|
File and Directories Copies |
Yes. Copies are supported | Yes. Copies are supported. | |
|
Remote Repository Replication |
Yes. | Yes. Using the PureCM Proxy Server. | |
|
Propagating Changes to Parent Repositories |
Yes. | No. | |
|
Repository Permissions |
Yes. It is possible to lock down repositories, subdirectories, or files using hooks. | Yes. Permissions can be set against repositories, streams (branches/labels), folders and files using Access Control Lists. | |
|
Changesets' Support |
Yes. Changesets are supported. | ||
|
Tracking Line-wise File History |
Yes. (hg annotate) | Yes, annotation is available through the GUI. | |
|
Ability to Work only on One Directory of the Repository |
It is possible to commit changes only in a subset of the tree. There are plans for partial checkouts. | Yes. | |
|
Tracking Uncommited Changes |
Yes. Using hg diff. | Yes. | |
|
Per-File Commit Messages |
No. | No. Commit messages are per change. | |
|
Documentation |
Very good. There is a companion book and a wiki. Every command has integrated help. | Very Good (html and command line help) | |
|
Ease of Deployment |
Excellent. Binary packages are available for all popular platforms. Building from source requires only Python 2.3 (or later) and a C compiler. | Very good. PureCM is very easy to deploy. | |
|
Command Set |
Tries to follow CVS conventions, but deviates where there is a different design. | A CVS-like command set which is easy to get used to for CVS-users. | |
|
Networking Support |
Excellent. Uses HTTP or ssh. Remote access also works safely without locks over read-only network filesystems. | Good. (single TCP/IP socket) | |
|
Portability |
Excellent. Runs on all platforms supported by Python. Repositories are portable across CPU architectures and endian conventions. | Excellent. Client and Server run on Windows, Linux, Solaris and other UNIXes. The client also runs on Mac OS X. | |
|
Web Interface |
Yes. The web interface is a bundled component. | Yes. | |
|
Availability of Graphical User-Interfaces. |
History viewing available with hgit extension; check-in extension (hgct) makes committing easier. Some third-party IDEs and GUI tools (e.g. eric3, meld) have integrated Mercurial support. | Cross-platform GUI for Windows, Linux, Mac OS X and other UNIXes. | |
|
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. |
|