| 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. |
|