| SCM feature: | Mercurial | svk |
Add to comparison:
+CVS +AccuRev +Aegis +AllChange +Arch +Bazaar +BitKeeper +ClearCase +CM+ +CMSynergy +Co-Op +Darcs +Git +LibreSource Synchronizer +Monotone +OpenCM +Perforce +PureCM +SourceAnywhere +Subversion +Superversion +Surround SCM +Team Foundation Server +Vesta +Visual SourceSafe |
|---|---|---|---|
|
Atomic Commits |
Yes. | Commits are atomic. | |
|
Files and Directories Moves or Renames |
Yes. Renames are 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. " | No. Same as Subversion. | |
|
File and Directories Copies |
Yes. Copies are supported | Yes. Same as subversion. | |
|
Remote Repository Replication |
Yes. | ||
|
Propagating Changes to Parent Repositories |
Yes. | ||
|
Repository Permissions |
Yes. It is possible to lock down repositories, subdirectories, or files using hooks. | Same as subversion. | |
|
Changesets' Support |
Yes. Changesets are supported. | Same as subversion. | |
|
Tracking Line-wise File History |
Yes. (hg annotate) | Yes. (svk blame) | |
|
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. Using svk diff | |
|
Per-File Commit Messages |
No. | No. There is no such feature. | |
|
Documentation |
Very good. There is a companion book and a wiki. Every command has integrated help. | Relatively poor, but improving. There's a work-in-progress book as well as the Wiki and some external Articles and Tutorials. | |
|
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. | In addition to installing subversion, users are required to install the subversion perl bindings and a few modules from CPAN. | |
|
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. | Very good. svk uses SVN::Mirror to retrieve remote repository. There has been plans to add VCP support to SVN::Mirror so it will be able to mirror from arbitary remote version control systems. | |
|
Portability |
Excellent. Runs on all platforms supported by Python. Repositories are portable across CPU architectures and endian conventions. | Good. Clients requires subversion and its perl bindings. | |
|
Web Interface |
Yes. The web interface is a bundled component. | Yes. Same as Subversion. | |
|
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. | No GUIs are available. | |
|
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. |
|