Comparison between Mercurial and svk

Back to main page

   
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.

 

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