Artifact a45f7bf59ec3fe5a3a74b4cb7450e7e3b2addb28
File
www/index.wiki
part of check-in
[adc0b3bfb0]
- Additional documentation updates.
by
drh on
2008-07-15 14:33:48.
<h1>Fossil: Distributed Revision Control, Wiki, and Bug-Tracking</h1>
<p>
Fossil is a new
<a href="http://en.wikipedia.org/wiki/Revision_control">
distributed software revision control system</a> that includes an integrated
<a href="http://en.wikipedia.org/wiki/Wiki">Wiki</a> and an integrated
<a href="http://en.wikipedia.org/wiki/Bugtracker">
bug-tracking system</a> 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
<a href="http://www.fossil-scm.org/fossil/timeline">self-hosting</a>
since 2007-07-21 on
<a href="http://www.hwaci.com/cgi-bin/fossil/timeline">two separate servers</a>.
You can download the lastest sources and
compile it yourself using the instructions below.
Or you can grab
<a href="http://www.fossil-scm.org/download.html">precompiled binaries</a>.
</p>
<p>Design Goals For Fossil:</p>
<ul>
<li>Supports 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>, or
<a href="http://www.bitkeeper.com/">bitkeeper</a>)
or client/server operation (like
<a href="http://www.nongnu.org/cvs/">CVS</a> or
<a href="http://subversion.tigris.org/">subversion</a>),
or operations on local repositories,
or all three at the same time</li>
<li>Integrated bug tracking and wiki, along the lines of
<a href="http://www.cvstrac.org/">CVSTrac</a> and
<a href="http://www.edgewall.com/trac/">Trac</a>.</li>
<li>Built-in web interface that supports deep archaeological digs through
the project history.</li>
<li>All network communication via
<a href="http://en.wikipedia.org/wiki/HTTP">HTTP</a>
(so that everything works from behind restrictive firewalls).</li>
<li>Everything (client, server, and utilities) is included in a
single self-contained executable - trivial to install</li>
<li>Server runs as <a href="http://www.w3.org/CGI/">CGI</a>, using
<a href="http://en.wikipedia.org/wiki/inetd">inetd</a>/<a
href="http://www.xinetd.org/">xinetd</a>, or using its own built-in,
standalone web server.</li>
<li>An entire project contained in single disk file (which also
happens to be an <a href="http://www.sqlite.org/">SQLite</a> database.)</li>
<li>Trivial to setup and administer</li>
<li>Files and versions are identified by their
<a href="http://en.wikipedia.org/wiki/SHA-1">SHA1</a> signature.</a>
Any unique prefix is sufficient to identify a file
or version - usually the first 4 or 5 characters suffice.</li>
<li>The <a href="fileformat.wiki">file format</a> designed to be enduring.
It is deliberately kept simple, requiring nothing more complex
than a text editor and an SHA1 checksum generator to encode or decode.</li>
<li>Automatic <a href="selfcheck.wiki">self-check</a>
on repository changes makes it exceedingly
unlikely that data will ever be lost because of a software bug.</li>
</ul>
<p>Objectives Of Fossil:</p>
<ul>
<li>Fossil should be ridiculously easy to
<a href="build.wiki">install</a> and
<a href="quickstart.wiki">operate</a>.</li>
<li>With fossil, it should be possible (and
<a href="quickstart.wiki#serversetup">easy</a>) to set up a project
on an inexpensive shared-hosting ISP
(example: <a href="http://www.he.net/hosting.html">Hurricane Electric</a>)
that provides nothing more than web space and CGI capability.
Here is <a href="http://www.hwaci.com/cgi-bin/fossil/timeline">a demo</a>.</li>
<li>Fossil should provide in-depth historical and status information about the
project through a web interface</li>
<li>Fossil should provide an historical record of a project that endures
for decades or centuries and across multiple generations of hardward
and software.</li>
<li>Fossil should be easily adaptable to different workflows. Fossil
implements mechanism, not policy.</li>
</ul>
<p>User Links:</p>
<ul>
<li>The <a href="concepts.wiki">concepts</b> behind fossil</li>
<li><a href="build.wiki">Building And Installing</a></li>
<li><a href="quickstart.wiki">Quick Start</a> guide to using fossil
<li>Fossil supports <a href="embeddeddoc.wiki">embedded documentation</a>
that is versioned along with project source code.</li>
<li>The <a href="selfcheck.wiki">automatic self-check</a> mechanism
helps insure project integrity.</li>
<li>Fossil contains a [/wiki | built-in wiki].</li>
<li>There is a
<a href="http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users">
mailing list</a> available for discussing fossil issues.</li>
</ul>
<p>Developer Links: </p>
<ul>
<li><a href="pop.wiki">Principles Of Operation</a></li>
<li>The <a href="fileformat.wiki">file format</a> used by every content
file stored in the repository.</li>
<li>The <a href="delta_format.wiki">format of deltas</a> used to
efficiently store changes between file revisions.</li>
<li>The <a href="delta_encoder_algorithm.wiki">encoder algorithm</a> used to
efficiently generate deltas.</li>
<li>The <a href="sync.wiki">synchronization protocol</a>.</li>
</ul>
<p>Competing Projects:</p>
<ul>
<li><a href="http://www.ditrack.org/">DITrace</a>
- A Distributed Issue Tracker</li>
<li><a href="http://www.distract.wellquite.org/">DisTract</a>
- Another distributed issue tracker based on
<a href="http://www.monotone.ca/">monotone</a>.</li>
<li><a href="http://www.monotone.ca/">Monotone</a> - distributed
SCM in a single-file executable with a single-file SQLite
database repository.</li>
</ul>