Artifact 8f90568023f5a76a7d505af590618ebbdc07f99e
File www/index.wiki part of check-in [522824b26a] - Documentation updates, including a big rework of the homepage. by drh on 2009-08-28 16:05:03.
<title>Fossil Home Page</title>
Quick Links![]() |
Why Use Fossil?
There are plenty of open-source version control systems available on the internet these days. What makes Fossil worthy of attention?
- Bug Tracking And Wiki - In addition to doing distributed version control like Git and Mercurial, Fossil also supports distributed bug tracking and distributed wiki all in a single integrated package.
- Web Interface - Fossil has a built-in and easy-to-use web interface that simplifies project tracking and promotes situational awareness. Simply type "fossil ui" from within any check-out and Fossil automatically opens your web browser in a page that gives detailed history and status information on that project.
- Autosync - Fossil supports "autosync" mode which helps to keep projects moving forward by reducing the amount of needless forking and merging often associated distributed projects.
- Self-Contained - Fossil is a single stand-alone executable that contains everything needed to do configuration management. Installation is trivial: simply download a precompiled binary for Linux, Mac, or Windows and put it on your $PATH. Easy-to-compile source code is available for users on other platforms. Fossil sources are also mostly self-contained, requiring only the "zlib" library and the standard C library to build.
- Simple Networking - Fossil uses plain old HTTP (with proxy support) for all network communications, meaning that it works fine from behind restrictive firewalls. The protocol is bandwidth efficient to the point that Fossil can be used comfortably over a dial-up internet connection.
- CGI Enabled - No server is required to use fossil. But a server does make collaboration easier. Fossil supports three different yet simple server configurations. The most popular is a 2-line CGI script. This is the approach used by the self-hosting fossil repositories.
- Robust & Reliable - Fossil stores content in an SQLite database so that transactions are atomic even if interrupted by a power loss or system crash. Furthermore, automatic self-checks verify that all aspects of the repository are consistent prior to each commit. In over two years of operation, no work has ever been lost after having been committed to a Fossil repository.
Links For Fossil Users:
- Testimonials from satisfied fossil users.
- FAQ
- The concepts behind fossil
- Quick Start guide to using fossil
- Questions & Criticisms directed at fossil.
- Building And Installing
- Fossil supports embedded documentation that is versioned along with project source code.
- Fossil uses an enduring file format that is designed to be readable, searchable, and extensible by people not yet born.
- A tutorial on branching, what it means and how to do it using fossil.
- The automatic self-check mechanism helps insure project integrity.
- Fossil contains a built-in wiki.
- There is a mailing list available for discussing fossil issues.
- Performance statistics taken from real-world projects hosted on fossil.
- How to delete content from a fossil repository.
- Some (unfinished but expanding) extended reference documentation for the fossil command line.
Links For Fossil Developer:
- Principles Of Operation
- The file format used by every content file stored in the repository.
- The format of deltas used to efficiently store changes between file revisions.
- The encoder algorithm used to efficiently generate deltas.
- The synchronization protocol.