- Bug Tracking And Wiki - In addition to doing distributed version control like Git and Mercurial, Fossil also supports distributed bug tracking, distributed wiki, and a distributed blog mechanism 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 graphical history and status information on that project.
This entire website (except the download page) is just a running instance of Fossil. The pages you see here are all wiki or embedded documentation. When you clone Fossil from one of its self-hosting repositories, you get more than just source code - you get this entire website.
- Autosync - Fossil supports "autosync" mode which helps to keep projects moving forward by reducing the amount of needless forking and merging often associated with 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 using an enduring file format 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 three 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 and Quotes about Fossil and other DVCSes.
- 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.
- An Event is a special kind of wiki page associated with a point in time rather than a name.
- Settings control the behaviour of fossil.
- Use SSL to encrypt communication with the server.
- There is a mailing list (with publicly readable archives available for discussing fossil issues.
- Performance statistics taken from real-world projects hosted on fossil.
- How to delete content from a fossil repository.
- How Fossil does password management.
- Some (unfinished but expanding) extended reference documentation for the fossil command line.
- Documentation on the TH1 Script Language used to configure the ticketing subsystem.
- A free hosting server for Fossil repositories is available at http://chiselapp.com/.
- How to set up a server for your repository.
- Customizing the ticket system.
- Methods to identify a specific check-in.
- Import and export from and to Git.
- Fossil versus Git.
Links For Fossil Developer:
- Contributing code or documentation to the Fossil project.
- Thoughts On The Design Of Fossil.
- Principles Of Operation
- A Technical Overview Of Fossil.
- 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.
- Using A Pre-compiled Binary.
- Executive Summary.
Building and installing is very simple. Three steps:
- Download and unpack a source tarball or ZIP.
- ./configure; make
- Move or copy the resulting "fossil" executable to someplace on your $PATH.
Obtaining The Source Code.
Fossil is self-hosting, so you can obtain a ZIP archive containing a snapshot of the latest version directly from fossil's own fossil repository. Follow these steps:
- Point your web browser at http://www.fossil-scm.org/. Click on the "Login" menu button.
- Log in as anonymous. The password is shown on screen. The reason for requiring this login is to prevent spiders from walking the entire website, downloading ZIP archives of every historical version, and thereby soaking up all our bandwidth.
- Click on the Timeline link at the top of the page.
- Select a version of of fossil you want to download. Click on its link. Note that you must successfully log in as "anonymous" in step 1 above in order to see the link to the detailed version information.
- Finally, click on one of the "Zip Archive" or "Tarball" links, according to your preference. These link will build a ZIP archive or a gzip-compressed tarball of the complete source code and download it to your browser.
- Unpack the ZIP or tarball you downloaded into that directory then cd into the directory created.
- (Optional, unix only) Run ./configure to construct a makefile.
- If you do not have the OpenSSL library installed on your system, then add --with-openssl=none to omit the https functionality.
- To build a statically linked binary (suitable for use inside a chroot jail) add the --static option.
- Other configuration options can be seen by running ./configure --help
- Run make to build the "fossil" or "fossil.exe" executable. The details depend on your platform and compiler.
- Unix → the configure-generated Makefile should work on all unix and unix-like systems. Simply type "make".
- Unix without running "configure" → if you prefer to avoid running configure, you can also use: make -f Makefile.classic. You may want to make minor edits to Makefile.classic to configure the build for your system.
- Msys/MinGW → Use the mingw makefile: "make -f win/Makefile.mingw"
- VC++ → Use the msc makefile. First change to the "win/" subdirectory ("cd win") then run "nmake /f Makefile.msc".
- The finished binary is named "fossil" (or "fossil.exe" on windows). Put this binary in a directory that is somewhere on your PATH environment variable. It does not matter where.
- (Optional:) To uninstall, just delete the binary.
- If the makefiles that come with Fossil do not work for you, or for some other reason you want to know how to build Fossil manually, then refer to the Fossil Build Process document which describes in detail what the makefiles do behind the scenes.