News for hackers. Stuff that matters.
Re:Fossil SCM (from SQLite's creator) by silentbicycle on Monday September 07, 2009 @06:27PM (#809877)
Looks interesting. A lightweight (fully self-contained in one <2mb file) distributed version control system, with built-in wiki and bugtracker, written by the author of SQLite. Since it stores everything in SQLite, the entire repo can be copied around as one file, and solid transactions are already implemented. (It's probably quite portable.) It doesn't look like it has a library/API to use it as a storage backend, yet. Oh, and it's released under the GPL v. 2.

Word of warning: fossil open (checking out a project from the repo file) tarbombs the project into the current directory by default.

At a quick glance: it looks easy to use, the bug tracker and wiki look decent. It seems to be focused heavily on reliability (never corrupting the repo), at the possible expense of speed. It seemed slower than git, but likely still faster for day-to-day usage than non-distributed VCs. I don't have any pressing reason to switch from git, but I'm curious if anybody else here has comments from more than a few hours experience with it.

Re:Fossil SCM (from SQLite's creator) by gecko on Tuesday September 08, 2009 @10:42AM (#811091)
Sure, I've got a bunch, since I rather infamously screwed around with it after Eric Sink said it was the DVCS he was most interested in. In particular order:

Fossil wants to GPG-sign everything by default, and doesn't get along well with gnupg2. That means no gpg-agent, which means typing your password every time you make a commit.

Until recently, Fossil lacked private branches. Fossil now has private branches, with a twist: merging a private branch into a named branch shows up as a single commit, much as if you had qfold/git rebase -i'd them in Mercurial or Git. Multiple private branch support is still clumsy. Selectively pushing branches, as in Mercurial, is impossible.

Merging support is still very young. Fossil does not handle renaming a file in one branch and making changes in another at all; you'll lose either the changes, the rename, or both. Thankfully, the autosync feature, enabled by default, encourages you to stay rigorously up-to-date, lessening the chance of this occurring.

The SQLite schema still changes fairly often, so you'll need to "fossil rebuild all" fairly often, if you're keeping up-to-date.

Fossil is quite dependent on the integrated web server for using the tool. While most of the functionality is available from the command line, some isn't, and that which is, is frequently undocumented. The web interface, thankfully, is quite easy to use.

Fossil lacks any real patch management, which will be a disappointment for projects used to sending patches by email. It also lacks any support for git-diffs or similar, meaning that some changes stored by Fossil cannot be properly represented to the user.

I find Fossil's separation of repository from working directory highly annoying. Other users love it, and others don't care. Your mileage may vary.

I'm continuing to keep an eye on Fossil, if only because, with Mercurial and Git increasingly well-established, it's the only DVCS that brings anything remotely new to the table. That said, it's got a ways to go before I think it'll be of interest to most projects.

Re:Fossil SCM (from SQLite's creator) by silentbicycle on Tuesday September 08, 2009 @10:50AM (#811107)
> That means no gpg-agent, which means typing your password every time you make a commit.

Yikes. Monotone also made you do crypto auth setup upfront, which meant that starting up a new repository had a couple key/user-related steps that made it seem cumbersome compared to git or hg.