Why I'm using Fossil SCM instead of other source control systems

Why I'm using Fossil SCM instead of other source control systems

git remains by far the most used version source control system. Compared to all other SCM's it's the best one. I have a github account and use it too for certain projects.

But I still prefer to use Fossil for projects where I'm the only developer or we have a very small team of people working on a project.

I'll try to answer the Why question by reviewing some of the awesomeness of Fossil

It's has everything a developer needs

  • Ticket management:)
  • Built in Web Interface
  • Yes, it has it's own built in webserver.
  • Simple networking protocols which make it bandwidth efficient
  • CGI/SCGI enabled
  • Autosync functionality
  • FOSS (free and open source)

It has everything GitHub offers and more plus it's 100% open source.
Ok, GIT is open source, but tools like github aren't even if they offer free access.

Self contained

It's pretty much self contained, this means you only need the fossil binary to use fossil.
You can store the whole project in 1 file. This means I can easily put it everywhere.
It uses SQLITE3 for storage, this means that all your project data is stored in 1 file.

Web Interface

Great, it has a web interface, so what?
Well, it's a big think because it combines:

  • Ticketing system which automatically links commits if you insert the ticket name
  • Integrated buck tracking
  • Wiki to post information and data
  • View and manage branches
  • View code history
  • File browser and download whole snapshots
  • Manage users

Everything github does + more. Easy and accesible for ANYONE.

Server synchronization

You can setup a simple CGI/SCGI with apache, nginix or you can let fossil run it's own server via SCGI.
This means that you can copy your fossil to a VPS and work together with other people.


Multi Repositories Server sync example

A simple example of how I use fossil on my own VPS. I have set it up so I can have multiple fossil repositories and I only need to edit the nginx configuration once.

First download the latest fossil self contained binary and copy it to /usr/bin/fossil

Add the following to your nginx configuration file

location ~ ^/myfossil(.*)$ {
include scgi_params;
scgi_pass localhost:9915;
scgi_param SCRIPT_NAME "/myfossil";
scgi_param HTTPS "on";


On your VPS be sure you're logged in as the user who is the repo owner ssh

Then upload all your fossil files to ~/fossilrepo/. After you're done you can run the following command to start the server in the background. You can wrap it with a system.d script to make it a service:)

fossil server ~/fossilrepo/ --repolist --scgi --localhost --port 9915 &


Forgot your developer password?

Forgot your developer password to your fossil repository AND have access to the original file?
No problem, you can edit the SQLITe database internally to change it!

Ready to use it?

Head over to the official website!

Want to learn how to use it?

Just download this book, note that it's for version 1.25 which is a somewhat older version but it works mostly the same!


It was written to support Tcl so it was a big plus for me.
UPDATE 2018: Even if I now use elixir as my main development framework I still use Fossil for projects.

NOTE: I still believe git is a good fit for certain applications. Take for example the Linux kernel, using Fossil for the Linux kernel would have been extremely complicated since there are thousands of people who submit patches.
It's a problem of the cathedral and the bazzar. However I believe that 95% of projects would work better with Fossil.

Even when I work with GIT I usually commit big milestones with it. Most small commits occur  in  Fossil.


You might enjoy these similar articles:

Be the first to comment!

Add a new comment

All comments are moderated and must adhere to the terms of service.

Subscribe to my awesome newsletter!

What to expect: Ultimate Knowledge regarding Business Efficiency, Personalized Marketing Experience, Software Development and Cyber Security tips and tricks. 1-3 mails per month. Unsubscribe any time. See the privacy policy to learn how we take care of your information.