Simple, high-reliability, distributed software configuration management

Why Use Fossil?

  • [http://www.fossil-scm.org/download.html | Download]
  • [./quickstart.wiki | Quick Start]
  • [./build.wiki | Install]
  • [../COPYRIGHT-BSD2.txt | License]
  • [/timeline | Recent changes]
  • [./faq.wiki | FAQ]
  • [./contribute.wiki | Contributing]
  • [./changes.wiki | Change Log]
  • [./permutedindex.wiki | Doc Index]
  • Mailing list
    • [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users | sign-up]
    • [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org | archives]
There are plenty of open-source version control systems available on the internet these days. What makes Fossil worthy of attention? 1. Bug Tracking And Wiki - In addition to doing [./concepts.wiki | distributed version control] like Git and Mercurial, Fossil also supports [./bugtheory.wiki | distributed bug tracking], [./wikitheory.wiki | distributed wiki], and a [./event.wiki | distributed blog] mechanism all in a single integrated package. 2. Web Interface - Fossil has a built-in and easy-to-use [./webui.wiki | 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 [/timeline?n=100&y=ci | graphical history] and status information on that project. This entire website (except the [http://www.fossil-scm.org/download.html | download] page) is just a running instance of Fossil. The pages you see here are all [./wikitheory.wiki | wiki] or [./embeddeddoc.wiki | embedded documentation]. When you clone Fossil from one of its [./selfhost.wiki | self-hosting repositories], you get more than just source code - you get this entire website. 3. Autosync - Fossil supports [./concepts.wiki#workflow | "autosync" mode] which helps to keep projects moving forward by reducing the amount of needless [./branching.wiki | forking and merging] often associated with distributed projects. 4. 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. [./build.wiki | 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. 5. Simple Networking - Fossil uses plain old HTTP (with [./quickstart.wiki#proxy | proxy support]) for all network communications, meaning that it works fine from behind restrictive firewalls. The protocol is [./stats.wiki | bandwidth efficient] to the point that Fossil can be used comfortably over a dial-up internet connection. 6. CGI Enabled - No server is required to use fossil. But a server does make collaboration easier. Fossil supports three different yet simple [./quickstart.wiki#serversetup | server configurations]. The most popular is a 2-line CGI script. This is the approach used by the [./selfhost.wiki | self-hosting fossil repositories]. 7. Robust & Reliable - Fossil stores content using an [./fileformat.wiki | enduring file format] in an SQLite database so that transactions are atomic even if interrupted by a power loss or system crash. Furthermore, automatic [./selfcheck.wiki | self-checks] verify that all aspects of the repository are consistent prior to each commit. In over three years of operation, no work has ever been lost after having been committed to a Fossil repository.

Links For Fossil Users:

* [./reviews.wiki | Testimonials] from satisfied fossil users and [./quotes.wiki | Quotes] about Fossil and other DVCSes. * [./faq.wiki | FAQ] * The [./concepts.wiki | concepts] behind fossil * [./quickstart.wiki | Quick Start] guide to using fossil * [./qandc.wiki | Questions & Criticisms] directed at fossil. * [./build.wiki | Building And Installing] * Fossil supports [./embeddeddoc.wiki | embedded documentation] that is versioned along with project source code. * Fossil uses an [./fileformat.wiki | enduring file format] that is designed to be readable, searchable, and extensible by people not yet born. * A tutorial on [./branching.wiki | branching], what it means and how to do it using fossil. * The [./selfcheck.wiki | automatic self-check] mechanism helps insure project integrity. * Fossil contains a [./wikitheory.wiki | built-in wiki]. * An [./event.wiki | Event] is a special kind of wiki page associated with a point in time rather than a name. * [./settings.wiki | Settings] control the behaviour of fossil. * [./ssl.wiki | Use SSL] to encrypt communication with the server. * There is a [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users | mailing list] (with publicly readable [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org | archives] available for discussing fossil issues. * [./stats.wiki | Performance statistics] taken from real-world projects hosted on fossil. * How to [./shunning.wiki | delete content] from a fossil repository. * How Fossil does [./password.wiki | password management]. * Some (unfinished but expanding) extended [./reference.wiki | reference documentation] for the fossil command line. * Documentation on the [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used to configure the ticketing subsystem. * A free hosting server for Fossil repositories is available at [http://chiselapp.com/]. * How to [./server.wiki | set up a server] for your repository. * Customizing the [./custom_ticket.wiki | ticket system]. * Methods to [./checkin_names.wiki | identify a specific check-in]. * [./inout.wiki | Import and export] from and to Git. * [./fossil-v-git.wiki | Fossil versus Git].

Links For Fossil Developer:

* [./contribute.wiki | Contributing] code or documentation to the Fossil project. * [./theory1.wiki | Thoughts On The Design Of Fossil]. * [./pop.wiki | Principles Of Operation] * [./tech_overview.wiki | A Technical Overview Of Fossil]. * The [./fileformat.wiki | file format] used by every content file stored in the repository. * The [./delta_format.wiki | format of deltas] used to efficiently store changes between file revisions. * The [./delta_encoder_algorithm.wiki | encoder algorithm] used to efficiently generate deltas. * The [./sync.wiki | synchronization protocol].