Artifact 0332519f4d138e21027f06087282932efda07dc4
File www/index.wiki part of check-in [42ed55e82f] - Documentation tweaks. by drh on 2008-06-02 15:18:39.
Fossil: Distributed Revision Control, Wiki, and Bug-Tracking
Fossil is a new distributed software revision control system that includes an integrated Wiki and an integrated bug-tracking system all in a single easy-to-use stand-alone executable. (NB: The bug-tracker component is not yet completely functional, but we expect it to be available soon.) Fossil is self-hosting since 2007-07-21 on two separate servers. You can download the lastest sources and compile it yourself using the instructions below. Or you can grab precompiled binaries.
Design Goals For Fossil:
- Supports disconnected, distributed development (like git, monotone, mercurial, or bitkeeper) or client/server operation (like CVS or subversion), or operations on local repositories, or all three at the same time
- Integrated bug tracking and wiki, along the lines of CVSTrac and Trac.
- Built-in web interface that supports deep archaeological digs through historical source code.
- All network communication via HTTP (so that everything works from behind restrictive firewalls).
- Everything included in a single self-contained executable - trivial to install
- Server runs as CGI, using inetd or xinetd or using its own built-in, standalone web server.
- An entire project contained in single disk file (which also happens to be an SQLite database.)
- Trivial to setup and administer
- Files and versions are identified by their SHA1 signature. Any unique prefix is sufficient to identify a file or version - usually the first 4 or 5 characters suffice.
- The file format is trival and requires nothing more complex than a text editor and the "sha1sum" command-line utility to decode.
- Automatic self-check on repository changes makes it exceedingly unlikely that data will ever be lost because of a software bug.
Objectives Of Fossil:
- Fossil should be ridiculously easy to install and operate.
- With fossil, it should be possible (and easy) to set up a project on an inexpensive shared-hosting ISP (example: Hurricane Electric) that provides nothing more than web space and CGI capability. Here is a demo.
- Fossil should provide in-depth historical and status information about the project through a web interface
- The integration of Wiki and the ability to safely support anonymous check-in are features sometimes described as Web 2.0. Fossil attempts to better capture "collective intelligence" and "the wisdom of crowds" by opening up write access to the masses.
User Links:
- The concepts behind fossil
- Building And Installing
- Quick Start guide to using fossil
- Fossil supports embedded documentation that is versioned along with project source code.
- 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.
Developer Links:
- 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.
Competing Projects: