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