Comparison between Bazaar and Mercurial

Back to main page

   
SCM feature: Bazaar Mercurial Add to comparison: +CVS
+AccuRev
+Aegis
+Arch
+BitKeeper
+ClearCase
+CM+
+CMSynergy
+Co-Op
+Darcs
+Git
+LibreSource Synchronizer
+Monotone
+OpenCM
+Perforce
+PureCM
+SourceAnywhere
+Subversion
+Superversion
+svk
+Vesta
+Visual SourceSafe
Atomic Commits
Yes. Commits are atomic. Yes.
Files and Directories Moves or Renames
Yes. Renames are supported for files and directories. Yes. Renames are supported.
File and Directories Copies
No. Copies are not supported. Yes. Copies are supported
Remote Repository Replication
Yes.
Propagating Changes to Parent Repositories
Yes.
Repository Permissions
Basic access control can be implemented through a contributed hook script. ACL support for the Bazaar server is planned. Yes. It is possible to lock down repositories, subdirectories, or files using hooks.
Changesets' Support
Yes. Changesets are supported.
Tracking Line-wise File History
Yes. (bzr annotate). Yes. (hg annotate)
Ability to Work only on One Directory of the Repository
For checkouts: No. For checkins: Yes. It is possible to commit changes only in a subset of the tree. There are plans for partial checkouts.
Tracking Uncommited Changes
Yes, using "bzr diff". Yes. Using hg diff.
Per-File Commit Messages
With respect to pure Bazaar: No. At least one plugin (bzr-gtk) supports it though. No.
Documentation
Excellent. Apart from online help in the command line client there exist tutorials, a reference card ("Quick Start Guide"), several full fledged guides and references, and documents on specialized topics, such as migration from other VCS systems and different workflows. The documentation comes in html and plain-text formats. The API of the underlying library is fully documented. In the UI design of the command line client special attention was paid to make it easy to get started with Bazaar. Very good. There is a companion book and a wiki. Every command has the integrated help.
Ease of Deployment
Very easy. Bazaar has an installer for MS Windows and packages for some major Linux distributions, FreeBSD, and Mac OS X. The dependencies for manual installation are listed on the Bazaar website. Excellent. Binary packages are available for all popular platforms. Building from source requires only Python 2.3 (or later) and a C compiler.
Command Set
Tries to follow CVS conventions, but deviates where there is a different design. Tries to follow CVS conventions, but deviates where there is a different design.
Networking Support
Excellent. Works natively over HTTP (read-only), FTP and SFTP without having Bazaar installed at the remote end. Works over HTTP, SSH and a custom protocol when talking to a remote Bazaar server. Supports RSYNC and WebDAV (experimental) through plugins. Excellent. Uses HTTP or ssh. Remote access also works safely without locks over read-only network filesystems.
Portability
Works on MS Windows, Linux, Mac OS X, FreeBSD, UNIX, and basically on any system that has a recent Python port. With case-insensitive file systems there are some issues that can be avoided by using a graphical frontend. On MS Windows there is a plugin to support tracking of symlinks even if they are not supported natively by the file system. Excellent. Runs on all platforms supported by Python. Repositories are portable across CPU architectures and endian conventions.
Web Interface
Yes, several: Loggerhead, Webserve, Bzrweb, and Trac. Yes. The web interface is a bundled component.
Availability of Graphical User-Interfaces.
There are several graphical frontends in development, see the Bazaar Plugins page and the Third-party Tools page. Notable are QBzr (Qt) and bzr-gtk (GTK+), which can be considered beta quality. Work is also being done on integrating Bazaar with Windows Explorer, Eclipse, Nautilus, and Meld. 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.
 


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.