Version Control Systems (VCS) have always been of great interest to the
Linux and open source community, but the the topic has gained new life in
recent weeks thanks to the
ending development of its free (as in beer) tool.
Since Subversion has
already been ruled out
, that leaves the door open for one of the many
other open source VCS. One of the alternatives which has been
considered by Linus Torvalds for kernel development is Monotone
Monotone is a distributed version control system that supports 3-way
merges, peer-to-peer synchronization and runs on several platforms --
Linux, Windows, Solaris, Mac OS X and other Unix-like systems. The project is
available under the GPL and just a bit over two years old. The first
release was created by Graydon Hoare and pushed out on April 6, 2003. The
most recent release, 0.18, was announced on
Monotone has much to recommend it, feature-wise. It supports atomic
commits, allows versioned file and directory renames (as opposed to CVS,
where moving a file or directory causes loss of the file history) and uses
SHA1 checksums to identify files, directories and revisions. Information
about a source tree is kept in a SQLite database, which is synchronized against
remote databases or the local working copy. The command set is relatively
easy to pick up, and the documentation is
very clear as well.
Torvalds does have a
few gripes about Monotone, for example, he complains that it's
"much harder than it should be to have throw-away trees due to the
fact that they seem to be working on the assumption of 'one database per
developer' rather than 'one database per tree'" though it is not
necessary to follow the "one database per developer" model.
Torvalds has also complained about the performance of Monotone; this issue,
by itself, appears to have been sufficient to make him look elsewhere.
There was a brief discussion
on the mailing list about the opportunity to boost awareness of Monotone,
and it seems that the team is working on improvements. One user on the
Monotone-devel mailing list complained
that it took more than two hours to pull the source, using 0.17.
According to the release
notes for 0.18, the new release improves "most operations sped up
by a factor of 2 or better; many sped up by several orders of
magnitude." Torvalds also gets a special "thank you" in the notes.
LWN readers interested in examining the various open source VCS might find
Control System Comparison useful, as well as this essay on systems. The
Monotone webpage also provides a list of other version
control systems, should Monotone fail to meet your needs.
In the long run, BitMover's exit from kernel development version control
may be a boon for the open source community. While the kernel team will
have to deal with some short-term pain in finding a replacement, it may
provide a helpful boost to open source VCS to reach parity or even,
eventually, move ahead of BitKeeper's feature set.
to post comments)