The name D. Richard Hipp is most likely familiar: he is the man who created
the immensely popular embedded database called SQLite, contained in
probably thousands of projects including, very possibly, your mobile phone. He
also created a version control system named Fossil. I’ve been looking at
Fossil a bit: a single binary (called
fossil) implements the client as well
as the server side of the version control system, and it adds a Wiki, a ticket
tracker, and a Web interface to the lot, as well as distributed version
control over HTTP (with proxy support). Let me briefly introduce you to
Fossil with an example, sort of the “hello world” of a version control
system. You can follow along with this after downloading the binary,
which BTW also exists for Windows.
So far there is nothing particular spectacular. We’ve created a new
repository, and we “opened” that repository, thereby making it our default.
After creating a few files, I committed those files, and that’s it. What is,
however, quite sexy is this. From within that same directory, launch the
(i.e. the user interface).
If all works well, this will have launched your Web browser onto an
HTTP server implemented by the
fossil binary. (If your Web browser doesn’t
start, point it at
localhost:8080/index. If you look around the
interface, you’ll see the individual features that Fossil has to
offer. What I can also do is to import a project from Git. As an example, I’ll
use my couch-sdb project:
Let me show you the timeline: Fossil incorporates a a small Ticket tracker as well, which looks like this. Fossil isn’t without criticisms, but I think it is a very robust package, and I feel it is particularly suited to environments that want to collaborate on projects, but which don’t feel like setting up the usual and typically rather large number of prerequisites to do so (think: Apache, bug tracker, Wiki, etc.) Fossil’s data store is SQLite but there is no reason to change that at some point in time.