Artifact Content
Not logged in

Artifact b5ddee628e02fff307202d7c46849b2b136855bd

File www/index.wiki part of check-in [2e275c1420] - First draft of the "branching" document. by drh on 2009-01-23 21:24:00.

<h1>Fossil: Distributed Revision Control, Wiki, and Bug-Tracking</h1>

Fossil is a
[http://en.wikipedia.org/wiki/Revision_control | distributed software version control system]
that includes an integrated
[./wikitheory.wiki | distributed wiki] and an integrated
[./bugtheory.wiki | distributed bug-tracking system] all in a single, 
easy-to-use, stand-alone executable.
Fossil is [http://www.fossil-scm.org/ | self-hosting]
since 2007-07-21 on
[http://www.hwaci.com/cgi-bin/fossil | two separate servers].
You can download the [/timeline?y=ci | latest sources] and
[./build.wiki | compile it yourself].
Or you can grab
[http://www.fossil-scm.org/download.html | pre-compiled binaries].


Feature Summary:

  *  Flexible workflow:<ul>
    <li>Disconnected, distributed development like
      <a href="http://kerneltrap.org/node/4982">git</a>,
      <a href="http://www.monotone.ca/">monotone</a>,
      <a href="http://www.selenic.com/mercurial/wiki/index.cgi">mercurial</a>,
      and <a href="http://www.bitkeeper.com/">bitkeeper</a>
    <li>Or, client/server operation like 
      <a href="http://www.nongnu.org/cvs/">CVS</a> and
      <a href="http://subversion.tigris.org/">subversion</a>,
    <li>Or, operations on local repositories,
    <li>Or, all of the above at the same time</ul>
  *  Integrated, [./bugtheory.wiki | distributed bug tracking] and 
     [./wikitheory.wiki | distributed wiki].
  *  Built-in web interface that supports deep archaeological digs through
     the project history.
  *  All network communication via 
     [http://en.wikipedia.org/wiki/HTTP | HTTP] with 
     [./quickstart.wiki#proxy | proxy support]
     so that everything works from behind restrictive firewalls.
  *  Everything (client, server, and utilities) is included in a 
     single self-contained executable - trivial to install
  *  Server runs as [./quickstart.wiki#cgiserver | CGI], using
     [./quickstart.wiki#inetdserver | inetd/xinetd]
     or using its own 
     [./quickstart.wiki#serversetup | built-in, stand alone web server].
  *  An entire project contained in single disk file
     (an [http://www.sqlite.org/ | SQLite] database.)
  *  Uses an [./fileformat.wiki | enduring file format] that is 
     designed to be readable, searchable, and extensible by people
     not yet born.
  *  Automatic [./selfcheck.wiki | self-check]
     on repository changes makes it exceedingly
     unlikely that data will ever be lost because of a software bug.
  *  Ridiculously easy to [./build.wiki | install] and 
     [./quickstart.wiki | operate].

User Links:

  *  The [./concepts.wiki | concepts] behind fossil
  *  [./build.wiki | Building And Installing]
  *  [./quickstart.wiki | Quick Start] guide to using fossil
  *  Fossil supports [./embeddeddoc.wiki | embedded documentation]
     that is versioned along with project source code.
  *  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].
  *  There is a
    [http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users | mailing list]
     available for discussing fossil issues.
  *  [./qandc.wiki | Questions &amp; Criticisms] directed at fossil.
  *  Some (unfinished but expanding) extended
      [./reference.wiki | reference documentation] for the fossil command line.

Developer Links:

  *  [./pop.wiki | Principles Of Operation]
  *  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].

Competing Projects:

  *  [http://www.ditrack.org/ | DITrace] - A Distributed Issue Tracker
  *  [http://www.distract.wellquite.org/ | DisTract]
     - Another distributed issue tracker based on 
     [http://www.monotone.ca/ | monotone].
  *  [http://www.monotone.ca/ | Monotone] - distributed
     SCM in a single-file executable with a single-file SQLite
     database repository.