The Monotone version control system
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 April 11.
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 the Version 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.
| Index entries for this article | |
|---|---|
| GuestArticles | Brockmeier, Joe |
