Computer Science Canada

Fossil SCM

Author:  btiffin [ Tue Dec 28, 2010 2:48 am ]
Post subject:  Fossil SCM

In my humble opinion, a wicked cool tool.

Dr Hipp, the man behind SQLite, is working on Fossil, a source code management system. Ala hg/git, distributed, but with the addition of git-hub lite in a single executable. Wiki, tickets, and docs in the repo. Nice. http://www.fossil-scm.org

Nice clean C code, builds into one exe (which includes TH1 a TCL derivative for controlling the ticket system). fossil repos are also single files. Management is a breeze. Dr. Hipp really does understand simple.

The default self-hosting feature is a two line CGI

code:

#!/usr/local/bin/fossil
repository: /home/proj1/repos1.fossil

and you can host multiple fossils using a .fossil extension and serve them all from a dir using the fossil server . feature or
code:

#!/path-to/fossil
directory: /path-to-repo/fossils
notfound: http://url-to-go-to-if-repo-not-found/
for your CGI script.

The SQLite site is a self hosted fossil.

It's still in development (the good Doctor just added a stash subcommand, but if you race to the site today, snag the copy from 12-07. The cut from 12-21 has a small typo bug in the SQL used to access artifacts.)

code:

[btiffin@home ~]$ fossil help
Usage: fossil help COMMAND.
Available COMMANDs:
add            close          http           reconstruct    status       
addremove      co             import         redo           sync         
all            commit         info           remote-url     tag         
annotate       configuration  init           rename         ticket       
artifact       deconstruct    leaves         revert         timeline     
bisect         delete         ls             rm             ui           
branch         descendants    merge          scrub          undo         
cgi            diff           mv             search         unset       
changes        export         new            server         update       
checkout       extras         open           settings       user         
ci             finfo          pull           sha1sum        version     
clean          gdiff          push           sqlite3        wiki         
clone          help           rebuild        stash          zip         
This is fossil version [09fc7be1f0] 2010-12-21 13:56:05 UTC


Cheers

Author:  Tony [ Tue Dec 28, 2010 2:58 am ]
Post subject:  RE:Fossil SCM

Interesting, they describe themselves as "software configuration management", instead of "source code management system".

If there is no integration between the checked in source code (or configuration files?) and blogs / wikis / whatever, then most of it sounds like an insane level of a feature creep.

Author:  btiffin [ Tue Dec 28, 2010 10:27 pm ]
Post subject:  Re: Fossil SCM

Gee Tony, are you going to make me defend my fanboy-ness? Ok, here goes. Smile

From wikipedia:
Quote:

In software engineering, software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines.

which is where Fossil really shines in my opinion.

Fossil is not just a distributed revision control system. It includes a wiki, ticket tracker and embedded documentation, all in a single repository, managed from a single executable. Not bloated, but just the right amount of project management in the source control system.

This is not feature creep in my humble. Dr. Hipp seems to work towards providing simple tools that allow flexible ways of creating sophisticated software. BUT there are caveats to that. Don't try and run Google as a fossil, it won't scale. Just as SQLite itself has limitations and is not the end-all-be-all database. It IS, when appropriate, a good-for-this-job database. Fossil is (for the projects I'm working on) a great-for-this-job SCM. When our development team hits 100 coders, I'll probably suggest a different tool. For now it's a sweet spot. BUT on the BUT... who here creates websites that attract thousands of hits a day? Or have to manage more than a few dozen busy programmers? And yes, I know to whom I am speaking...don't try and recode compsci.ca as a fossil, it'd be FAIL on the scale of EPIC Smile

For normal day to day living, I'll still suggest that most compsci.ca readers give it a try. Think github in a box you can carry home.

Cheers


: