Comparison between Mercurial and PureCM

Back to main page

   
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.

 

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