BitKeeper has always been controversial because of its license. Should we use a tool written by a company who doesn't want to play nicely? Is it an ethical problem that Linux, the flagship of free software, depends on a company who rejects the core philosophies of Open Source? Will BitKeeper ever be free?
BitKeeper can be used without charge for only one reason: to help Linus not burn out. As Larry McVoy said (2): "BK makes it really easy to do what Linus is doing." But there is only one Linus; what about the rest of us? Which tools are best for what we're doing?
My personal opinion is that developers should use Subversion and/or Darcs, depending on project style and general preferences. If you want to use a central repository (cvs-style), use Subversion. If you want decentralized, BitKeeper-style private branches, use Darcs. Or, for really complex projects, SVK offers the best of both worlds.
Anyway, onto the comparison.
Tigris provides a nice set of corrections to part of the BitMover article, but does not include the comparison matrix. Here is what Tigris left out (and some things BitMover left out):
BitKeeper/Subversion Feature Comparison Matrix
Feature | BK/Pro | Subversion | Notes |
---|---|---|---|
Open Source license | No | Yes | |
Freely usable for any purpose | No | Yes |
|
Change sets | Yes | Yes |
|
Change sets are atomic | Yes | Yes |
|
Partial Checkouts, Subtrees | No | Yes |
|
Revision Philosophy | Patches | Snapshots |
|
Graphical Interfaces | One: some small but useful GUI tools come with BK | Several complete GUIs are available: RapidSVN, TortoiseSVN, QSvn, eSvn, and plugins for many popular editors and IDEs (Eclipse, emacs, etc) |
|
Other interfaces | CLI, Web | CLI, Web (chora, SVN::Web, ViewCVS (HEAD), mod_svn_view, trac, ViewSVN), WebDAV |
|
Dynamic branching | Yes | Yes; two methods: svk for distributed/private repos, or central branches with "svn cp" |
|
"Pro Merge" Technology | Yes | No |
|
Accurate handling of renames | Yes | Yes, but support is basic |
|
Peer to peer architecture | Yes | Yes (svk) |
|
Complete local history | Yes | svn: no svk: Yes |
|
True parallel development | ? | ? |
|
Multi-site development | Yes | Yes (svk) |
|
Mobile/Off-network functionality | Yes | svk: Yes svn: No, some commands require network access |
|
Pre-event triggers | Yes | Yes |
|
Post-event triggers | Yes | Yes |
|
Replicated repositories | Yes | Yes |
|
Automatic integrity checks | Yes | Yes |
|
Accurate recording of all history | No, only "pushed" changes are recorded | Yes, all changes are forever recorded as a series of fixed snapshots |
|
Minimal Administration | Yes | Yes |
|
Minimal hardware requirements | Yes | Yes |
|
Easy conversion from CVS | Mostly | Yes |
|
Marketed truthfully | No | Yes (?) |
|