Fossil SCM

Documentation updates.

drh 2010-12-31 21:12 trunk
Commit 5fb963ab616953cbb27607b215d408c4262658af
+19 -2
--- www/build.wiki
+++ www/build.wiki
@@ -1,7 +1,6 @@
11
<title>Building and Installing Fossil</title>
2
-<nowiki>
32
43
<p>This page describes how to build and install Fossil. The
54
whole process is designed to be very easy.</p>
65
76
<h2>0.0 Using A Pre-compiled Binary</h2>
@@ -41,11 +40,12 @@
4140
complete source code and download it to your browser.
4241
</ol>
4342
4443
<h2>2.0 Compiling</h2>
4544
46
-<p>Follow these steps to compile:</p>
45
+<p>Follow these steps to compile on a unix platform
46
+(Linux, *BSD, MacOS, etc):</p>
4747
4848
<ol>
4949
<li value="6">
5050
<p>Create a directory to hold the source code. Then unzip the
5151
ZIP archive you downloaded into that directory. You should be
@@ -57,10 +57,18 @@
5757
variables in the makefile that can be changed. The whole Makefile
5858
is only a few dozen lines long and most of those lines are comments.</p>
5959
6060
<li><p>Type "<b>make</b>"
6161
</ol>
62
+
63
+<p>To build on windows, use an alternative makefile suitable for your
64
+particular build environment. The alternative windows makefiles are
65
+all found in the win/ subdirectory of the source tree. So, for example,
66
+if you want build using the
67
+[http://www.mingw.org/ | mingw/msys compiler package] for windows, then
68
+run "<b>make -f win/Makefile.mingw</b>" instead of just "<b>make</b>"
69
+in step 8 above.</p>
6270
6371
<h2>3.0 Installing</h2>
6472
6573
<ol>
6674
<li value="9">
@@ -70,5 +78,14 @@
7078
7179
<li>
7280
<p><b>(Optional:)</b>
7381
To uninstall, just delete the binary.</p>
7482
</ol>
83
+
84
+<h2>4.0 Additional Considerations</h2>
85
+
86
+</nowiki>
87
+ * If the makefiles that come with Fossil do not work for
88
+ you, or for some other reason you want to know how to build
89
+ Fossil manually, then refer to the
90
+ [./makefile.wiki | Fossil Build Process] document which describes
91
+ in detail what the makefiles do behind the scenes.
7592
--- www/build.wiki
+++ www/build.wiki
@@ -1,7 +1,6 @@
1 <title>Building and Installing Fossil</title>
2 <nowiki>
3
4 <p>This page describes how to build and install Fossil. The
5 whole process is designed to be very easy.</p>
6
7 <h2>0.0 Using A Pre-compiled Binary</h2>
@@ -41,11 +40,12 @@
41 complete source code and download it to your browser.
42 </ol>
43
44 <h2>2.0 Compiling</h2>
45
46 <p>Follow these steps to compile:</p>
 
47
48 <ol>
49 <li value="6">
50 <p>Create a directory to hold the source code. Then unzip the
51 ZIP archive you downloaded into that directory. You should be
@@ -57,10 +57,18 @@
57 variables in the makefile that can be changed. The whole Makefile
58 is only a few dozen lines long and most of those lines are comments.</p>
59
60 <li><p>Type "<b>make</b>"
61 </ol>
 
 
 
 
 
 
 
 
62
63 <h2>3.0 Installing</h2>
64
65 <ol>
66 <li value="9">
@@ -70,5 +78,14 @@
70
71 <li>
72 <p><b>(Optional:)</b>
73 To uninstall, just delete the binary.</p>
74 </ol>
 
 
 
 
 
 
 
 
 
75
--- www/build.wiki
+++ www/build.wiki
@@ -1,7 +1,6 @@
1 <title>Building and Installing Fossil</title>
 
2
3 <p>This page describes how to build and install Fossil. The
4 whole process is designed to be very easy.</p>
5
6 <h2>0.0 Using A Pre-compiled Binary</h2>
@@ -41,11 +40,12 @@
40 complete source code and download it to your browser.
41 </ol>
42
43 <h2>2.0 Compiling</h2>
44
45 <p>Follow these steps to compile on a unix platform
46 (Linux, *BSD, MacOS, etc):</p>
47
48 <ol>
49 <li value="6">
50 <p>Create a directory to hold the source code. Then unzip the
51 ZIP archive you downloaded into that directory. You should be
@@ -57,10 +57,18 @@
57 variables in the makefile that can be changed. The whole Makefile
58 is only a few dozen lines long and most of those lines are comments.</p>
59
60 <li><p>Type "<b>make</b>"
61 </ol>
62
63 <p>To build on windows, use an alternative makefile suitable for your
64 particular build environment. The alternative windows makefiles are
65 all found in the win/ subdirectory of the source tree. So, for example,
66 if you want build using the
67 [http://www.mingw.org/ | mingw/msys compiler package] for windows, then
68 run "<b>make -f win/Makefile.mingw</b>" instead of just "<b>make</b>"
69 in step 8 above.</p>
70
71 <h2>3.0 Installing</h2>
72
73 <ol>
74 <li value="9">
@@ -70,5 +78,14 @@
78
79 <li>
80 <p><b>(Optional:)</b>
81 To uninstall, just delete the binary.</p>
82 </ol>
83
84 <h2>4.0 Additional Considerations</h2>
85
86 </nowiki>
87 * If the makefiles that come with Fossil do not work for
88 you, or for some other reason you want to know how to build
89 Fossil manually, then refer to the
90 [./makefile.wiki | Fossil Build Process] document which describes
91 in detail what the makefiles do behind the scenes.
92
--- www/index.wiki
+++ www/index.wiki
@@ -142,10 +142,11 @@
142142
143143
<h3>Links For Fossil Developer:</h3>
144144
145145
* [./theory1.wiki | Thoughts On The Design Of Fossil].
146146
* [./pop.wiki | Principles Of Operation]
147
+ * [./tech_overview.wiki | A Technical Overview Of Fossil].
147148
* The [./fileformat.wiki | file format] used by every content
148149
file stored in the repository.
149150
* The [./delta_format.wiki | format of deltas] used to
150151
efficiently store changes between file revisions.
151152
* The [./delta_encoder_algorithm.wiki | encoder algorithm] used to
152153
--- www/index.wiki
+++ www/index.wiki
@@ -142,10 +142,11 @@
142
143 <h3>Links For Fossil Developer:</h3>
144
145 * [./theory1.wiki | Thoughts On The Design Of Fossil].
146 * [./pop.wiki | Principles Of Operation]
 
147 * The [./fileformat.wiki | file format] used by every content
148 file stored in the repository.
149 * The [./delta_format.wiki | format of deltas] used to
150 efficiently store changes between file revisions.
151 * The [./delta_encoder_algorithm.wiki | encoder algorithm] used to
152
--- www/index.wiki
+++ www/index.wiki
@@ -142,10 +142,11 @@
142
143 <h3>Links For Fossil Developer:</h3>
144
145 * [./theory1.wiki | Thoughts On The Design Of Fossil].
146 * [./pop.wiki | Principles Of Operation]
147 * [./tech_overview.wiki | A Technical Overview Of Fossil].
148 * The [./fileformat.wiki | file format] used by every content
149 file stored in the repository.
150 * The [./delta_format.wiki | format of deltas] used to
151 efficiently store changes between file revisions.
152 * The [./delta_encoder_algorithm.wiki | encoder algorithm] used to
153
+5 -2
--- www/mkindex.tcl
+++ www/mkindex.tcl
@@ -30,20 +30,23 @@
3030
quotes.wiki
3131
{Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}
3232
selfcheck.wiki {Fossil Repository Integrity Self Checks}
3333
selfhost.wiki {Fossil Self Hosting Repositories}
3434
server.wiki {How To Configure A Fossil Server}
35
- shunning.wiki {Deleting Content From Fossil}
35
+ shunning.wiki {Shunning: Deleting Content From Fossil}
3636
stats.wiki {Performance Statistics}
3737
sync.wiki {The Fossil Sync Protocol}
38
+ tech_overview.wiki {A Technical Overview Of The Design And Implementation
39
+ Of Fossil}
40
+ tech_overview.wiki {SQLite Databases Used By Fossil}
3841
theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
3942
webui.wiki {The Fossil Web Interface}
4043
wikitheory.wiki {Wiki In Fossil}
4144
}
4245
4346
set permindex {}
44
-set stopwords {fossil and a in of on the to are about}
47
+set stopwords {fossil and a in of on the to are about used by}
4548
foreach {file title} $doclist {
4649
set n [llength $title]
4750
lappend permindex [list $title $file]
4851
for {set i 0} {$i<$n-1} {incr i} {
4952
set prefix [lrange $title 0 $i]
5053
--- www/mkindex.tcl
+++ www/mkindex.tcl
@@ -30,20 +30,23 @@
30 quotes.wiki
31 {Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}
32 selfcheck.wiki {Fossil Repository Integrity Self Checks}
33 selfhost.wiki {Fossil Self Hosting Repositories}
34 server.wiki {How To Configure A Fossil Server}
35 shunning.wiki {Deleting Content From Fossil}
36 stats.wiki {Performance Statistics}
37 sync.wiki {The Fossil Sync Protocol}
 
 
 
38 theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
39 webui.wiki {The Fossil Web Interface}
40 wikitheory.wiki {Wiki In Fossil}
41 }
42
43 set permindex {}
44 set stopwords {fossil and a in of on the to are about}
45 foreach {file title} $doclist {
46 set n [llength $title]
47 lappend permindex [list $title $file]
48 for {set i 0} {$i<$n-1} {incr i} {
49 set prefix [lrange $title 0 $i]
50
--- www/mkindex.tcl
+++ www/mkindex.tcl
@@ -30,20 +30,23 @@
30 quotes.wiki
31 {Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}
32 selfcheck.wiki {Fossil Repository Integrity Self Checks}
33 selfhost.wiki {Fossil Self Hosting Repositories}
34 server.wiki {How To Configure A Fossil Server}
35 shunning.wiki {Shunning: Deleting Content From Fossil}
36 stats.wiki {Performance Statistics}
37 sync.wiki {The Fossil Sync Protocol}
38 tech_overview.wiki {A Technical Overview Of The Design And Implementation
39 Of Fossil}
40 tech_overview.wiki {SQLite Databases Used By Fossil}
41 theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
42 webui.wiki {The Fossil Web Interface}
43 wikitheory.wiki {Wiki In Fossil}
44 }
45
46 set permindex {}
47 set stopwords {fossil and a in of on the to are about used by}
48 foreach {file title} $doclist {
49 set n [llength $title]
50 lappend permindex [list $title $file]
51 for {set i 0} {$i<$n-1} {incr i} {
52 set prefix [lrange $title 0 $i]
53
--- www/permutedindex.wiki
+++ www/permutedindex.wiki
@@ -1,9 +1,11 @@
11
<title>Permuted Index Of Fossil Documentation</title>
22
<nowiki>
33
<ul>
44
<li><a href="event.wiki">Events</a></li>
5
+<li><a href="tech_overview.wiki">A Technical Overview Of The Design And Implementation
6
+ Of Fossil</a></li>
57
<li><a href="delta_encoder_algorithm.wiki">Algorithm &#151; Fossil Delta Encoding</a></li>
68
<li><a href="faq.wiki">Asked Questions &#151; Frequently</a></li>
79
<li><a href="password.wiki">Authentication &#151; Password Management And</a></li>
810
<li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
911
<li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
@@ -11,17 +13,19 @@
1113
<li><a href="build.wiki">Building and Installing Fossil</a></li>
1214
<li><a href="checkin_names.wiki">Checkin And Version Names</a></li>
1315
<li><a href="selfcheck.wiki">Checks &#151; Fossil Repository Integrity Self</a></li>
1416
<li><a href="concepts.wiki">Concepts &#151; Fossil Core</a></li>
1517
<li><a href="server.wiki">Configure A Fossil Server &#151; How To</a></li>
16
-<li><a href="shunning.wiki">Content From Fossil &#151; Deleting</a></li>
18
+<li><a href="shunning.wiki">Content From Fossil &#151; Shunning: Deleting</a></li>
1719
<li><a href="concepts.wiki">Core Concepts &#151; Fossil</a></li>
1820
<li><a href="qandc.wiki">Criticisms &#151; Questions And</a></li>
1921
<li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
20
-<li><a href="shunning.wiki">Deleting Content From Fossil</a></li>
22
+<li><a href="tech_overview.wiki">Databases Used By Fossil &#151; SQLite</a></li>
23
+<li><a href="shunning.wiki">Deleting Content From Fossil &#151; Shunning:</a></li>
2124
<li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm &#151; Fossil</a></li>
2225
<li><a href="delta_format.wiki">Delta Format &#151; Fossil</a></li>
26
+<li><a href="tech_overview.wiki">Design And Implementation Of Fossil &#151; A Technical Overview Of The</a></li>
2327
<li><a href="theory1.wiki">Design Of The Fossil DVCS &#151; Thoughts On The</a></li>
2428
<li><a href="embeddeddoc.wiki">Documentation &#151; Embedded Project</a></li>
2529
<li><a href="theory1.wiki">DVCS &#151; Thoughts On The Design Of The Fossil</a></li>
2630
<li><a href="quotes.wiki">DVCSes in General &#151; Quotes: What People Are Saying About Fossil, Git, and</a></li>
2731
<li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
@@ -39,28 +43,30 @@
3943
<li><a href="selfcheck.wiki">Fossil Repository Integrity Self Checks</a></li>
4044
<li><a href="selfhost.wiki">Fossil Self Hosting Repositories</a></li>
4145
<li><a href="fossil-v-git.wiki">Fossil Versus Git</a></li>
4246
<li><a href="quotes.wiki">Fossil, Git, and DVCSes in General &#151; Quotes: What People Are Saying About</a></li>
4347
<li><a href="faq.wiki">Frequently Asked Questions</a></li>
44
-<li><a href="shunning.wiki">From Fossil &#151; Deleting Content</a></li>
48
+<li><a href="shunning.wiki">From Fossil &#151; Shunning: Deleting Content</a></li>
4549
<li><a href="inout.wiki">From Git &#151; Import And Export To And</a></li>
4650
<li><a href="quotes.wiki">General &#151; Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li>
4751
<li><a href="fossil-v-git.wiki">Git &#151; Fossil Versus</a></li>
4852
<li><a href="inout.wiki">Git &#151; Import And Export To And From</a></li>
4953
<li><a href="quotes.wiki">Git, and DVCSes in General &#151; Quotes: What People Are Saying About Fossil,</a></li>
5054
<li><a href="quickstart.wiki">Guide &#151; Fossil Quick Start</a></li>
5155
<li><a href="index.wiki">Home Page</a></li>
5256
<li><a href="selfhost.wiki">Hosting Repositories &#151; Fossil Self</a></li>
5357
<li><a href="server.wiki">How To Configure A Fossil Server</a></li>
58
+<li><a href="tech_overview.wiki">Implementation Of Fossil &#151; A Technical Overview Of The Design And</a></li>
5459
<li><a href="inout.wiki">Import And Export To And From Git</a></li>
5560
<li><a href="build.wiki">Installing Fossil &#151; Building and</a></li>
5661
<li><a href="selfcheck.wiki">Integrity Self Checks &#151; Fossil Repository</a></li>
5762
<li><a href="webui.wiki">Interface &#151; The Fossil Web</a></li>
5863
<li><a href="password.wiki">Management And Authentication &#151; Password</a></li>
5964
<li><a href="branching.wiki">Merging, and Tagging &#151; Branching, Forking,</a></li>
6065
<li><a href="checkin_names.wiki">Names &#151; Checkin And Version</a></li>
6166
<li><a href="pop.wiki">Operations &#151; Principles Of</a></li>
67
+<li><a href="tech_overview.wiki">Overview Of The Design And Implementation Of Fossil &#151; A Technical</a></li>
6268
<li><a href="index.wiki">Page &#151; Home</a></li>
6369
<li><a href="password.wiki">Password Management And Authentication</a></li>
6470
<li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What</a></li>
6571
<li><a href="stats.wiki">Performance Statistics</a></li>
6672
<li><a href="pop.wiki">Principles Of Operations</a></li>
@@ -75,15 +81,18 @@
7581
<li><a href="selfcheck.wiki">Repository Integrity Self Checks &#151; Fossil</a></li>
7682
<li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What People Are</a></li>
7783
<li><a href="selfcheck.wiki">Self Checks &#151; Fossil Repository Integrity</a></li>
7884
<li><a href="selfhost.wiki">Self Hosting Repositories &#151; Fossil</a></li>
7985
<li><a href="server.wiki">Server &#151; How To Configure A Fossil</a></li>
86
+<li><a href="shunning.wiki">Shunning: Deleting Content From Fossil</a></li>
87
+<li><a href="tech_overview.wiki">SQLite Databases Used By Fossil</a></li>
8088
<li><a href="quickstart.wiki">Start Guide &#151; Fossil Quick</a></li>
8189
<li><a href="stats.wiki">Statistics &#151; Performance</a></li>
8290
<li><a href="sync.wiki">Sync Protocol &#151; The Fossil</a></li>
8391
<li><a href="custom_ticket.wiki">System &#151; Customizing The Ticket</a></li>
8492
<li><a href="branching.wiki">Tagging &#151; Branching, Forking, Merging, and</a></li>
93
+<li><a href="tech_overview.wiki">Technical Overview Of The Design And Implementation Of Fossil &#151; A</a></li>
8594
<li><a href="makefile.wiki">The Fossil Build Process</a></li>
8695
<li><a href="sync.wiki">The Fossil Sync Protocol</a></li>
8796
<li><a href="webui.wiki">The Fossil Web Interface</a></li>
8897
<li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li>
8998
<li><a href="custom_ticket.wiki">Ticket System &#151; Customizing The</a></li>
9099
--- www/permutedindex.wiki
+++ www/permutedindex.wiki
@@ -1,9 +1,11 @@
1 <title>Permuted Index Of Fossil Documentation</title>
2 <nowiki>
3 <ul>
4 <li><a href="event.wiki">Events</a></li>
 
 
5 <li><a href="delta_encoder_algorithm.wiki">Algorithm &#151; Fossil Delta Encoding</a></li>
6 <li><a href="faq.wiki">Asked Questions &#151; Frequently</a></li>
7 <li><a href="password.wiki">Authentication &#151; Password Management And</a></li>
8 <li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
9 <li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
@@ -11,17 +13,19 @@
11 <li><a href="build.wiki">Building and Installing Fossil</a></li>
12 <li><a href="checkin_names.wiki">Checkin And Version Names</a></li>
13 <li><a href="selfcheck.wiki">Checks &#151; Fossil Repository Integrity Self</a></li>
14 <li><a href="concepts.wiki">Concepts &#151; Fossil Core</a></li>
15 <li><a href="server.wiki">Configure A Fossil Server &#151; How To</a></li>
16 <li><a href="shunning.wiki">Content From Fossil &#151; Deleting</a></li>
17 <li><a href="concepts.wiki">Core Concepts &#151; Fossil</a></li>
18 <li><a href="qandc.wiki">Criticisms &#151; Questions And</a></li>
19 <li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
20 <li><a href="shunning.wiki">Deleting Content From Fossil</a></li>
 
21 <li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm &#151; Fossil</a></li>
22 <li><a href="delta_format.wiki">Delta Format &#151; Fossil</a></li>
 
23 <li><a href="theory1.wiki">Design Of The Fossil DVCS &#151; Thoughts On The</a></li>
24 <li><a href="embeddeddoc.wiki">Documentation &#151; Embedded Project</a></li>
25 <li><a href="theory1.wiki">DVCS &#151; Thoughts On The Design Of The Fossil</a></li>
26 <li><a href="quotes.wiki">DVCSes in General &#151; Quotes: What People Are Saying About Fossil, Git, and</a></li>
27 <li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
@@ -39,28 +43,30 @@
39 <li><a href="selfcheck.wiki">Fossil Repository Integrity Self Checks</a></li>
40 <li><a href="selfhost.wiki">Fossil Self Hosting Repositories</a></li>
41 <li><a href="fossil-v-git.wiki">Fossil Versus Git</a></li>
42 <li><a href="quotes.wiki">Fossil, Git, and DVCSes in General &#151; Quotes: What People Are Saying About</a></li>
43 <li><a href="faq.wiki">Frequently Asked Questions</a></li>
44 <li><a href="shunning.wiki">From Fossil &#151; Deleting Content</a></li>
45 <li><a href="inout.wiki">From Git &#151; Import And Export To And</a></li>
46 <li><a href="quotes.wiki">General &#151; Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li>
47 <li><a href="fossil-v-git.wiki">Git &#151; Fossil Versus</a></li>
48 <li><a href="inout.wiki">Git &#151; Import And Export To And From</a></li>
49 <li><a href="quotes.wiki">Git, and DVCSes in General &#151; Quotes: What People Are Saying About Fossil,</a></li>
50 <li><a href="quickstart.wiki">Guide &#151; Fossil Quick Start</a></li>
51 <li><a href="index.wiki">Home Page</a></li>
52 <li><a href="selfhost.wiki">Hosting Repositories &#151; Fossil Self</a></li>
53 <li><a href="server.wiki">How To Configure A Fossil Server</a></li>
 
54 <li><a href="inout.wiki">Import And Export To And From Git</a></li>
55 <li><a href="build.wiki">Installing Fossil &#151; Building and</a></li>
56 <li><a href="selfcheck.wiki">Integrity Self Checks &#151; Fossil Repository</a></li>
57 <li><a href="webui.wiki">Interface &#151; The Fossil Web</a></li>
58 <li><a href="password.wiki">Management And Authentication &#151; Password</a></li>
59 <li><a href="branching.wiki">Merging, and Tagging &#151; Branching, Forking,</a></li>
60 <li><a href="checkin_names.wiki">Names &#151; Checkin And Version</a></li>
61 <li><a href="pop.wiki">Operations &#151; Principles Of</a></li>
 
62 <li><a href="index.wiki">Page &#151; Home</a></li>
63 <li><a href="password.wiki">Password Management And Authentication</a></li>
64 <li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What</a></li>
65 <li><a href="stats.wiki">Performance Statistics</a></li>
66 <li><a href="pop.wiki">Principles Of Operations</a></li>
@@ -75,15 +81,18 @@
75 <li><a href="selfcheck.wiki">Repository Integrity Self Checks &#151; Fossil</a></li>
76 <li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What People Are</a></li>
77 <li><a href="selfcheck.wiki">Self Checks &#151; Fossil Repository Integrity</a></li>
78 <li><a href="selfhost.wiki">Self Hosting Repositories &#151; Fossil</a></li>
79 <li><a href="server.wiki">Server &#151; How To Configure A Fossil</a></li>
 
 
80 <li><a href="quickstart.wiki">Start Guide &#151; Fossil Quick</a></li>
81 <li><a href="stats.wiki">Statistics &#151; Performance</a></li>
82 <li><a href="sync.wiki">Sync Protocol &#151; The Fossil</a></li>
83 <li><a href="custom_ticket.wiki">System &#151; Customizing The Ticket</a></li>
84 <li><a href="branching.wiki">Tagging &#151; Branching, Forking, Merging, and</a></li>
 
85 <li><a href="makefile.wiki">The Fossil Build Process</a></li>
86 <li><a href="sync.wiki">The Fossil Sync Protocol</a></li>
87 <li><a href="webui.wiki">The Fossil Web Interface</a></li>
88 <li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li>
89 <li><a href="custom_ticket.wiki">Ticket System &#151; Customizing The</a></li>
90
--- www/permutedindex.wiki
+++ www/permutedindex.wiki
@@ -1,9 +1,11 @@
1 <title>Permuted Index Of Fossil Documentation</title>
2 <nowiki>
3 <ul>
4 <li><a href="event.wiki">Events</a></li>
5 <li><a href="tech_overview.wiki">A Technical Overview Of The Design And Implementation
6 Of Fossil</a></li>
7 <li><a href="delta_encoder_algorithm.wiki">Algorithm &#151; Fossil Delta Encoding</a></li>
8 <li><a href="faq.wiki">Asked Questions &#151; Frequently</a></li>
9 <li><a href="password.wiki">Authentication &#151; Password Management And</a></li>
10 <li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
11 <li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
@@ -11,17 +13,19 @@
13 <li><a href="build.wiki">Building and Installing Fossil</a></li>
14 <li><a href="checkin_names.wiki">Checkin And Version Names</a></li>
15 <li><a href="selfcheck.wiki">Checks &#151; Fossil Repository Integrity Self</a></li>
16 <li><a href="concepts.wiki">Concepts &#151; Fossil Core</a></li>
17 <li><a href="server.wiki">Configure A Fossil Server &#151; How To</a></li>
18 <li><a href="shunning.wiki">Content From Fossil &#151; Shunning: Deleting</a></li>
19 <li><a href="concepts.wiki">Core Concepts &#151; Fossil</a></li>
20 <li><a href="qandc.wiki">Criticisms &#151; Questions And</a></li>
21 <li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
22 <li><a href="tech_overview.wiki">Databases Used By Fossil &#151; SQLite</a></li>
23 <li><a href="shunning.wiki">Deleting Content From Fossil &#151; Shunning:</a></li>
24 <li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm &#151; Fossil</a></li>
25 <li><a href="delta_format.wiki">Delta Format &#151; Fossil</a></li>
26 <li><a href="tech_overview.wiki">Design And Implementation Of Fossil &#151; A Technical Overview Of The</a></li>
27 <li><a href="theory1.wiki">Design Of The Fossil DVCS &#151; Thoughts On The</a></li>
28 <li><a href="embeddeddoc.wiki">Documentation &#151; Embedded Project</a></li>
29 <li><a href="theory1.wiki">DVCS &#151; Thoughts On The Design Of The Fossil</a></li>
30 <li><a href="quotes.wiki">DVCSes in General &#151; Quotes: What People Are Saying About Fossil, Git, and</a></li>
31 <li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
@@ -39,28 +43,30 @@
43 <li><a href="selfcheck.wiki">Fossil Repository Integrity Self Checks</a></li>
44 <li><a href="selfhost.wiki">Fossil Self Hosting Repositories</a></li>
45 <li><a href="fossil-v-git.wiki">Fossil Versus Git</a></li>
46 <li><a href="quotes.wiki">Fossil, Git, and DVCSes in General &#151; Quotes: What People Are Saying About</a></li>
47 <li><a href="faq.wiki">Frequently Asked Questions</a></li>
48 <li><a href="shunning.wiki">From Fossil &#151; Shunning: Deleting Content</a></li>
49 <li><a href="inout.wiki">From Git &#151; Import And Export To And</a></li>
50 <li><a href="quotes.wiki">General &#151; Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li>
51 <li><a href="fossil-v-git.wiki">Git &#151; Fossil Versus</a></li>
52 <li><a href="inout.wiki">Git &#151; Import And Export To And From</a></li>
53 <li><a href="quotes.wiki">Git, and DVCSes in General &#151; Quotes: What People Are Saying About Fossil,</a></li>
54 <li><a href="quickstart.wiki">Guide &#151; Fossil Quick Start</a></li>
55 <li><a href="index.wiki">Home Page</a></li>
56 <li><a href="selfhost.wiki">Hosting Repositories &#151; Fossil Self</a></li>
57 <li><a href="server.wiki">How To Configure A Fossil Server</a></li>
58 <li><a href="tech_overview.wiki">Implementation Of Fossil &#151; A Technical Overview Of The Design And</a></li>
59 <li><a href="inout.wiki">Import And Export To And From Git</a></li>
60 <li><a href="build.wiki">Installing Fossil &#151; Building and</a></li>
61 <li><a href="selfcheck.wiki">Integrity Self Checks &#151; Fossil Repository</a></li>
62 <li><a href="webui.wiki">Interface &#151; The Fossil Web</a></li>
63 <li><a href="password.wiki">Management And Authentication &#151; Password</a></li>
64 <li><a href="branching.wiki">Merging, and Tagging &#151; Branching, Forking,</a></li>
65 <li><a href="checkin_names.wiki">Names &#151; Checkin And Version</a></li>
66 <li><a href="pop.wiki">Operations &#151; Principles Of</a></li>
67 <li><a href="tech_overview.wiki">Overview Of The Design And Implementation Of Fossil &#151; A Technical</a></li>
68 <li><a href="index.wiki">Page &#151; Home</a></li>
69 <li><a href="password.wiki">Password Management And Authentication</a></li>
70 <li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What</a></li>
71 <li><a href="stats.wiki">Performance Statistics</a></li>
72 <li><a href="pop.wiki">Principles Of Operations</a></li>
@@ -75,15 +81,18 @@
81 <li><a href="selfcheck.wiki">Repository Integrity Self Checks &#151; Fossil</a></li>
82 <li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General &#151; Quotes: What People Are</a></li>
83 <li><a href="selfcheck.wiki">Self Checks &#151; Fossil Repository Integrity</a></li>
84 <li><a href="selfhost.wiki">Self Hosting Repositories &#151; Fossil</a></li>
85 <li><a href="server.wiki">Server &#151; How To Configure A Fossil</a></li>
86 <li><a href="shunning.wiki">Shunning: Deleting Content From Fossil</a></li>
87 <li><a href="tech_overview.wiki">SQLite Databases Used By Fossil</a></li>
88 <li><a href="quickstart.wiki">Start Guide &#151; Fossil Quick</a></li>
89 <li><a href="stats.wiki">Statistics &#151; Performance</a></li>
90 <li><a href="sync.wiki">Sync Protocol &#151; The Fossil</a></li>
91 <li><a href="custom_ticket.wiki">System &#151; Customizing The Ticket</a></li>
92 <li><a href="branching.wiki">Tagging &#151; Branching, Forking, Merging, and</a></li>
93 <li><a href="tech_overview.wiki">Technical Overview Of The Design And Implementation Of Fossil &#151; A</a></li>
94 <li><a href="makefile.wiki">The Fossil Build Process</a></li>
95 <li><a href="sync.wiki">The Fossil Sync Protocol</a></li>
96 <li><a href="webui.wiki">The Fossil Web Interface</a></li>
97 <li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li>
98 <li><a href="custom_ticket.wiki">Ticket System &#151; Customizing The</a></li>
99
--- www/quickstart.wiki
+++ www/quickstart.wiki
@@ -203,11 +203,11 @@
203203
latest version of the branch your are currently on.</p>
204204
205205
<h2>Branching And Merging</h2>
206206
207207
<p>You can create branches by doing multiple commits off of the
208
- same base version. To merge to branches back together, first
208
+ same base version. To merge two branches back together, first
209209
[/help/update | update] to the leaf of one branch. Then do a
210210
[/help/merge | merge] of the leaf of the other branch:</p>
211211
212212
<blockquote>
213213
<b>[/help/merge | fossil merge]</b> <i>VERSION</i>
214214
--- www/quickstart.wiki
+++ www/quickstart.wiki
@@ -203,11 +203,11 @@
203 latest version of the branch your are currently on.</p>
204
205 <h2>Branching And Merging</h2>
206
207 <p>You can create branches by doing multiple commits off of the
208 same base version. To merge to branches back together, first
209 [/help/update | update] to the leaf of one branch. Then do a
210 [/help/merge | merge] of the leaf of the other branch:</p>
211
212 <blockquote>
213 <b>[/help/merge | fossil merge]</b> <i>VERSION</i>
214
--- www/quickstart.wiki
+++ www/quickstart.wiki
@@ -203,11 +203,11 @@
203 latest version of the branch your are currently on.</p>
204
205 <h2>Branching And Merging</h2>
206
207 <p>You can create branches by doing multiple commits off of the
208 same base version. To merge two branches back together, first
209 [/help/update | update] to the leaf of one branch. Then do a
210 [/help/merge | merge] of the leaf of the other branch:</p>
211
212 <blockquote>
213 <b>[/help/merge | fossil merge]</b> <i>VERSION</i>
214
+1 -1
--- www/quotes.wiki
+++ www/quotes.wiki
@@ -59,11 +59,11 @@
5959
<h2>On Git Versus Fossil</h2>
6060
6161
<ol>
6262
<li value=6>
6363
Just want to say thanks for fossil making my life easier....
64
-Also [for] not having a misanthropic command line interface.
64
+Also <nowiki>[for]</nowiki> not having a misanthropic command line interface.
6565
6666
<blockquote>
6767
<i>Joshua Paine at [http://www.mail-archive.com/[email protected]/msg02736.html]</i>
6868
</blockquote>
6969
7070
--- www/quotes.wiki
+++ www/quotes.wiki
@@ -59,11 +59,11 @@
59 <h2>On Git Versus Fossil</h2>
60
61 <ol>
62 <li value=6>
63 Just want to say thanks for fossil making my life easier....
64 Also [for] not having a misanthropic command line interface.
65
66 <blockquote>
67 <i>Joshua Paine at [http://www.mail-archive.com/[email protected]/msg02736.html]</i>
68 </blockquote>
69
70
--- www/quotes.wiki
+++ www/quotes.wiki
@@ -59,11 +59,11 @@
59 <h2>On Git Versus Fossil</h2>
60
61 <ol>
62 <li value=6>
63 Just want to say thanks for fossil making my life easier....
64 Also <nowiki>[for]</nowiki> not having a misanthropic command line interface.
65
66 <blockquote>
67 <i>Joshua Paine at [http://www.mail-archive.com/[email protected]/msg02736.html]</i>
68 </blockquote>
69
70
--- www/selfcheck.wiki
+++ www/selfcheck.wiki
@@ -13,12 +13,14 @@
1313
part to the defensive measures described here, no data has been
1414
lost. The integrity checks are doing their job well.</p>
1515
1616
<h2>Atomic Check-ins With Rollback</h2>
1717
18
-The fossil repository is an
19
-<a href="http://www.sqlite.org/">SQLite version 3</a> database file.
18
+The fossil repository is stored in an
19
+<a href="http://www.sqlite.org/">SQLite</a> database file.
20
+([./tech_overview.wiki | Addition information] about the repository
21
+file format.)
2022
SQLite is very mature and stable and has been in wide-spread use for many
2123
years, so we are confident it will not cause repository
2224
corruption. SQLite
2325
databases do not corrupt even if a program or system crash or power
2426
failure occurs in the middle of the update. If some kind of crash
@@ -25,11 +27,12 @@
2527
does occur in the middle of a change, then all the changes are rolled
2628
back the next time that the database is accessed.
2729
2830
A check-in operation in fossil makes many changes to the repository
2931
database. But all these changes happen within a single transaction.
30
-If something goes wrong in the middle of the commit, then the transaction
32
+If something goes wrong in the middle of the commit, even if that something
33
+is a power failure or OS crash, then the transaction
3134
is rolled back and the database is unchanged.
3235
3336
<h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
3437
3538
The content files that comprise the global state of a fossil repository
@@ -66,12 +69,12 @@
6669
<h2>Checksum Over All Files In A Check-in</h2>
6770
6871
Manifest artifacts that define a check-in have two fields (the
6972
R-card and Z-card) that record MD5 hashes of the manifest itself
7073
and of all other files in the manifest. Prior to any check-in
71
-commit, these checksums are verified to ensure that the check-in
72
-checked in agrees exactly with what is on disk. Similarly,
74
+commit, these checksums are verified to ensure that the checkin
75
+agrees exactly with what is on disk. Similarly,
7376
the repository checksum is verified after a checkout to make
7477
sure that the entire repository was checked out correctly.
7578
Note that these added checks use a different hash (MD5 instead
7679
of SHA1) in order to avoid common-mode failures in the hash
7780
algorithm implementation.
7881
--- www/selfcheck.wiki
+++ www/selfcheck.wiki
@@ -13,12 +13,14 @@
13 part to the defensive measures described here, no data has been
14 lost. The integrity checks are doing their job well.</p>
15
16 <h2>Atomic Check-ins With Rollback</h2>
17
18 The fossil repository is an
19 <a href="http://www.sqlite.org/">SQLite version 3</a> database file.
 
 
20 SQLite is very mature and stable and has been in wide-spread use for many
21 years, so we are confident it will not cause repository
22 corruption. SQLite
23 databases do not corrupt even if a program or system crash or power
24 failure occurs in the middle of the update. If some kind of crash
@@ -25,11 +27,12 @@
25 does occur in the middle of a change, then all the changes are rolled
26 back the next time that the database is accessed.
27
28 A check-in operation in fossil makes many changes to the repository
29 database. But all these changes happen within a single transaction.
30 If something goes wrong in the middle of the commit, then the transaction
 
31 is rolled back and the database is unchanged.
32
33 <h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
34
35 The content files that comprise the global state of a fossil repository
@@ -66,12 +69,12 @@
66 <h2>Checksum Over All Files In A Check-in</h2>
67
68 Manifest artifacts that define a check-in have two fields (the
69 R-card and Z-card) that record MD5 hashes of the manifest itself
70 and of all other files in the manifest. Prior to any check-in
71 commit, these checksums are verified to ensure that the check-in
72 checked in agrees exactly with what is on disk. Similarly,
73 the repository checksum is verified after a checkout to make
74 sure that the entire repository was checked out correctly.
75 Note that these added checks use a different hash (MD5 instead
76 of SHA1) in order to avoid common-mode failures in the hash
77 algorithm implementation.
78
--- www/selfcheck.wiki
+++ www/selfcheck.wiki
@@ -13,12 +13,14 @@
13 part to the defensive measures described here, no data has been
14 lost. The integrity checks are doing their job well.</p>
15
16 <h2>Atomic Check-ins With Rollback</h2>
17
18 The fossil repository is stored in an
19 <a href="http://www.sqlite.org/">SQLite</a> database file.
20 ([./tech_overview.wiki | Addition information] about the repository
21 file format.)
22 SQLite is very mature and stable and has been in wide-spread use for many
23 years, so we are confident it will not cause repository
24 corruption. SQLite
25 databases do not corrupt even if a program or system crash or power
26 failure occurs in the middle of the update. If some kind of crash
@@ -25,11 +27,12 @@
27 does occur in the middle of a change, then all the changes are rolled
28 back the next time that the database is accessed.
29
30 A check-in operation in fossil makes many changes to the repository
31 database. But all these changes happen within a single transaction.
32 If something goes wrong in the middle of the commit, even if that something
33 is a power failure or OS crash, then the transaction
34 is rolled back and the database is unchanged.
35
36 <h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
37
38 The content files that comprise the global state of a fossil repository
@@ -66,12 +69,12 @@
69 <h2>Checksum Over All Files In A Check-in</h2>
70
71 Manifest artifacts that define a check-in have two fields (the
72 R-card and Z-card) that record MD5 hashes of the manifest itself
73 and of all other files in the manifest. Prior to any check-in
74 commit, these checksums are verified to ensure that the checkin
75 agrees exactly with what is on disk. Similarly,
76 the repository checksum is verified after a checkout to make
77 sure that the entire repository was checked out correctly.
78 Note that these added checks use a different hash (MD5 instead
79 of SHA1) in order to avoid common-mode failures in the hash
80 algorithm implementation.
81
--- www/tech_overview.wiki
+++ www/tech_overview.wiki
@@ -6,11 +6,11 @@
66
<h2>1.0 Introduction</h2>
77
88
At its lowest level, a Fossil repository consists of an unordered set
99
of immutable "artifacts". You might think of these artifacts as "files",
1010
since in many cases the artifacts exactly correspond to source code files
11
-that are stored in the Fossil repostory. But other "control artifacts"
11
+that are stored in the Fossil repository. But other "control artifacts"
1212
are also included in the mix. These control artifacts define the relationships
1313
between artifacts - which files go together to form a particular
1414
version of the project, who checked in that version and when, what was
1515
the check-in comment, what wiki pages are included with the project, what
1616
are the edit histories of each wiki page, what bug reports or tickets are
@@ -84,11 +84,11 @@
8484
<li>[./fileformat.wiki | Global state of the project]
8585
encoded using delta-compression
8686
<li>Local [/help/setting|settings]
8787
<li>Web interface display preferences
8888
<li>User credentials and permissions
89
-<li>Meta-data about the global state to facilitate rapid
89
+<li>Metadata about the global state to facilitate rapid
9090
queries
9191
</ul>
9292
</td>
9393
<td width="33%" valign="top">
9494
<h3 align="center">Checkout Database<br>"_FOSSIL_"</h3>
@@ -122,11 +122,11 @@
122122
have reasonable defaults, and so many users will never need to change them.
123123
But if changes to settings are desired, the configuration database provides
124124
a way to change settings for all repositories with a single command, rather
125125
than having to change the setting individually on each repository.
126126
127
-The configuration database also maintains a list of respositories. This
127
+The configuration database also maintains a list of repositories. This
128128
list is used by the [/help/all | fossil all] command in order to run various
129129
operations such as "sync" or "rebuild" on all repositories managed by a user.
130130
131131
On unix systems, the configuration database is named ".fossil" and is
132132
located in the user's home directory. On windows, the configuration
@@ -137,12 +137,12 @@
137137
<h3>2.2 Repository Databases</h3>
138138
139139
The repository database is the file that is commonly referred to as
140140
"the repository". This is because the repository database contains,
141141
among other things, the complete revision, ticket, and wiki history for
142
-a project. It is customary to name the respository database after then
143
-name of the project, with a ".fossil" suffix. For example, the respository
142
+a project. It is customary to name the repository database after then
143
+name of the project, with a ".fossil" suffix. For example, the repository
144144
database for the self-hosting Fossil repository is called "fossil.fossil"
145145
and the repository database for SQLite is called "sqlite.fossil".
146146
147147
<h4>2.2.1 Global Project State</h4>
148148
@@ -167,13 +167,171 @@
167167
efficiently on disk.
168168
169169
All of the original uncompressed and undeltaed artifacts can be extracted
170170
from a Fossil repository database using
171171
the [/help/deconstruct | fossil deconstruct]
172
-command. Going the other way, the [/help/reconstruct | fossil reconstruct]
172
+command. Individual artifacts can be extracted using the
173
+[/help/artifact | fossil artifact] command.
174
+When accessing the repository database using raw SQL and the
175
+[/help/sqlite3 | fossil sql] command, the extension function
176
+"<tt>content()</tt>" with a single argument which is the SHA1 hash
177
+of an artifact will return the complete undeleted and uncompressed
178
+content of that artifact.
179
+
180
+Going the other way, the [/help/reconstruct | fossil reconstruct]
173181
command will scan a directory hierarchy and add all files found to
174
-a new repository database. The [/help/artifact | fossil artifact] command
175
-can be used to extract individual artifacts from the repository database.
182
+a new repository database. The [/help/import | fossil import] command
183
+works by reading the input git-fast-export stream and using it to construct
184
+corresponding artifacts which are then written into the repository database.
185
+
186
+<h4>2.2.2 Project Metadata</h4>
187
+
188
+The global project state information in the repository database is
189
+supplemented by computed metadata that makes querying the project state
190
+more efficient. Metadata includes but information such as the following:
191
+
192
+ * The names for all files found in any checkin.
193
+ * All check-ins that modify a given file
194
+ * Parents and children of each checkin.
195
+ * Potential timeline rows.
196
+ * The names of all symbolic tags and the checkins they apply to.
197
+ * The names of all wiki pages and the artifacts that comprise each
198
+ wiki page.
199
+ * Attachments and the wiki pages or tickets they apply to.
200
+ * Current content of each ticket.
201
+ * Cross-references between tickets, checkins, and wiki pages.
202
+
203
+The metadata is held in various SQL tables in the repository database.
204
+The metadata is designed to facilitate queries for the various timelines and
205
+reports that Fossil generates.
206
+As the functionality of Fossil evolves,
207
+the schema for the metadata can and does change from time to time.
208
+But schema changes do no invalidate the repository. Remember that the
209
+metadata contains no new information - only information that has been
210
+extracted from the canonical artifacts and saved in a more useful form.
211
+Hence, when the metadata schema changes, the prior metadata can be discarded
212
+and the entire metadata corpus can be recomputed from the canonical
213
+artifacts. That is what the
214
+[/help/rebuild | fossil rebuild] command does.
215
+
216
+<h4>2.2.3 Display And Processing Preferences</h4>
217
+
218
+The repository database also holds information used to help format
219
+the display of web pages and configuration settings that override the
220
+global configuration settings for the specific repository. All of
221
+this information (and the user credentials and privileges too) is
222
+local to each repository database; it is not shared between repositories
223
+by [/help/sync | fossil sync]. That is because it is entirely reasonable
224
+that two different websites for the same project might have completely
225
+different display preferences and user communities. One instance of the
226
+project might be a fork of the other, for example, which pulls from the
227
+other but never pushes and extends the project in ways that the keepers of
228
+the other website disapprove of.
229
+
230
+Display and processing information includes the following:
231
+
232
+ * The name and description of the project
233
+ * The CSS file, header, and footer used by all web pages
234
+ * The project logo image
235
+ * Fields of tickets that are considered "significant" and which are
236
+ therefore collected from artifacts and made available for display
237
+ * Templates for screens to view, edit, and create tickets
238
+ * Ticket report formats and display preferences
239
+ * Local values for [/help/setting | settings] that override the
240
+ global values defined in the per-user configuration database.
241
+
242
+Though the display and processing preferences do not move between
243
+repository instances using [/help/sync | fossil sync], this information
244
+can be shared between repositories using the
245
+[/help/config | fossil config push] and
246
+[/help/config | fossil config pull] commands.
247
+The display and processing information is also copied into new
248
+repositories when they are created using
249
+[/help/clone | fossil clone].
250
+
251
+<h4>2.2.4 User Credentials And Privileges</h4>
252
+
253
+Just because two development teams are collaborating on a project and allow
254
+push and/or pull between their repositories does not mean that they
255
+trust each other enough to share passwords and access privileges.
256
+Hence the names and emails and passwords and privileges of users are
257
+considered private information that is kept locally in each repository.
258
+
259
+Each repository database has a table holding the username, privileges,
260
+and login credentials for users authorized to interact with that particular
261
+database. In addition, there is a table named "concealed" that maps the
262
+SHA1 hash of each users email address back into their true email address.
263
+The concealed table allows just the SHA1 hash of email addresses to
264
+be stored in tickets, and thus prevents actual email addresses from falling
265
+into the hands of spammers who happen to clone the repository.
266
+
267
+The content of the user and concealed tables can be pushed and pulled using the
268
+[/help/config | fossil config push] and
269
+[/help/config | fossil config pull] commands with the "user" and
270
+"email" as the AREA argument, but only if you have administrative
271
+privileges on the remote repository.
272
+
273
+<h4>2.2.5 Shunned Artifact List</h4>
274
+
275
+The set of canonical artifacts for a project - the global state for the
276
+project - is intended to be an append-only database. In other words,
277
+new artifacts can be added but artifacts can never be removed. But
278
+it sometimes happens that inappropriate content can be mistakenly or
279
+maliciously added to a repository. When that happens, the only way
280
+to get rid of the content is to [./shunning.wiki | "shun"] it.
281
+The "shun" table in the repository database records the SHA1 hash of
282
+all shunned artifacts.
176283
177
-
284
+The shun table can be pushed or pulled using
285
+the [/help/config | fossil config] command with the "shun" AREA argument.
286
+The shun table is also copied during a [/help/clone | clone].
178287
179288
<h3>2.3 Checkout Databases</h3>
289
+
290
+Unlike several other popular DVCSes, Fossil allows a single repository
291
+to have multiple working checkouts. Each working checkout has a single
292
+database in its root directory that records the state of that checkout.
293
+The checkout database is named "_FOSSIL_" by default, but can be renamed
294
+to ".fos" if desired. (Future versions of Fossil might make ".fos" the
295
+default name.) The checkout database records information such as the
296
+following:
297
+
298
+ * The full pathname of the repository database file.
299
+ * The version that is currently checked out.
300
+ * Files that have been [/help/add | added],
301
+ [/help/rm | removed], or [/help/mv | renamed] but not
302
+ yet committed.
303
+ * The mtime and size of files as they were originally checked out,
304
+ in order to expedite checking which files have been edited.
305
+ * Other checkins that have been [/help/merge | merged] into the
306
+ working checkout but not yet committed.
307
+ * Copies of files prior to the most recent undoable operation - needed to
308
+ implement the [/help/undo | undo] and [/help/redo | redo] commands.
309
+ * The [/help/stash | stash].
310
+ * State information for the [/help/bisect | bisect] command.
311
+
312
+For Fossil commands that run from within a working checkout, the
313
+first thing that happens is that Fossil locates the checkout database.
314
+Fossil first looks in the current directory. If not found there, it
315
+looks in the parent directory. If not found there, the parent of the
316
+parent. And so forth until either the checkout database is found
317
+or the search reaches the root of the filesystem. (In the latter case,
318
+Fossil returns an error, of course.) Once the checkout database is
319
+located, it is used to locate the repository database.
320
+
321
+Notice that the checkout database contains a pointer to the repository
322
+database but that the repository database has no record of the checkout
323
+databases. That means that a working checkout directory tree can be
324
+freely renamed or copied or deleted without consequence. But the
325
+repository database file, on the other hand, has to stay in the same
326
+place with the same name or else the open checkout databases will not
327
+be able to find it.
328
+
329
+A checkout database is created by the [/help/open | fossil open] command.
330
+A checkout database is deleted by [/help/close | fossil close]. The
331
+fossil close command really isn't needed; one can accomplish the same
332
+thing simply by deleting the checkout database.
333
+
334
+Note that the stash, the undo stack, and the state of the bisect command
335
+are all contained within the checkout database. That means that the
336
+fossil close command will delete all stash content, the undo stack, and
337
+the bisect state. The close command is not undoable. Use it with care.
180338
--- www/tech_overview.wiki
+++ www/tech_overview.wiki
@@ -6,11 +6,11 @@
6 <h2>1.0 Introduction</h2>
7
8 At its lowest level, a Fossil repository consists of an unordered set
9 of immutable "artifacts". You might think of these artifacts as "files",
10 since in many cases the artifacts exactly correspond to source code files
11 that are stored in the Fossil repostory. But other "control artifacts"
12 are also included in the mix. These control artifacts define the relationships
13 between artifacts - which files go together to form a particular
14 version of the project, who checked in that version and when, what was
15 the check-in comment, what wiki pages are included with the project, what
16 are the edit histories of each wiki page, what bug reports or tickets are
@@ -84,11 +84,11 @@
84 <li>[./fileformat.wiki | Global state of the project]
85 encoded using delta-compression
86 <li>Local [/help/setting|settings]
87 <li>Web interface display preferences
88 <li>User credentials and permissions
89 <li>Meta-data about the global state to facilitate rapid
90 queries
91 </ul>
92 </td>
93 <td width="33%" valign="top">
94 <h3 align="center">Checkout Database<br>"_FOSSIL_"</h3>
@@ -122,11 +122,11 @@
122 have reasonable defaults, and so many users will never need to change them.
123 But if changes to settings are desired, the configuration database provides
124 a way to change settings for all repositories with a single command, rather
125 than having to change the setting individually on each repository.
126
127 The configuration database also maintains a list of respositories. This
128 list is used by the [/help/all | fossil all] command in order to run various
129 operations such as "sync" or "rebuild" on all repositories managed by a user.
130
131 On unix systems, the configuration database is named ".fossil" and is
132 located in the user's home directory. On windows, the configuration
@@ -137,12 +137,12 @@
137 <h3>2.2 Repository Databases</h3>
138
139 The repository database is the file that is commonly referred to as
140 "the repository". This is because the repository database contains,
141 among other things, the complete revision, ticket, and wiki history for
142 a project. It is customary to name the respository database after then
143 name of the project, with a ".fossil" suffix. For example, the respository
144 database for the self-hosting Fossil repository is called "fossil.fossil"
145 and the repository database for SQLite is called "sqlite.fossil".
146
147 <h4>2.2.1 Global Project State</h4>
148
@@ -167,13 +167,171 @@
167 efficiently on disk.
168
169 All of the original uncompressed and undeltaed artifacts can be extracted
170 from a Fossil repository database using
171 the [/help/deconstruct | fossil deconstruct]
172 command. Going the other way, the [/help/reconstruct | fossil reconstruct]
 
 
 
 
 
 
 
 
173 command will scan a directory hierarchy and add all files found to
174 a new repository database. The [/help/artifact | fossil artifact] command
175 can be used to extract individual artifacts from the repository database.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
177
 
 
178
179 <h3>2.3 Checkout Databases</h3>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
--- www/tech_overview.wiki
+++ www/tech_overview.wiki
@@ -6,11 +6,11 @@
6 <h2>1.0 Introduction</h2>
7
8 At its lowest level, a Fossil repository consists of an unordered set
9 of immutable "artifacts". You might think of these artifacts as "files",
10 since in many cases the artifacts exactly correspond to source code files
11 that are stored in the Fossil repository. But other "control artifacts"
12 are also included in the mix. These control artifacts define the relationships
13 between artifacts - which files go together to form a particular
14 version of the project, who checked in that version and when, what was
15 the check-in comment, what wiki pages are included with the project, what
16 are the edit histories of each wiki page, what bug reports or tickets are
@@ -84,11 +84,11 @@
84 <li>[./fileformat.wiki | Global state of the project]
85 encoded using delta-compression
86 <li>Local [/help/setting|settings]
87 <li>Web interface display preferences
88 <li>User credentials and permissions
89 <li>Metadata about the global state to facilitate rapid
90 queries
91 </ul>
92 </td>
93 <td width="33%" valign="top">
94 <h3 align="center">Checkout Database<br>"_FOSSIL_"</h3>
@@ -122,11 +122,11 @@
122 have reasonable defaults, and so many users will never need to change them.
123 But if changes to settings are desired, the configuration database provides
124 a way to change settings for all repositories with a single command, rather
125 than having to change the setting individually on each repository.
126
127 The configuration database also maintains a list of repositories. This
128 list is used by the [/help/all | fossil all] command in order to run various
129 operations such as "sync" or "rebuild" on all repositories managed by a user.
130
131 On unix systems, the configuration database is named ".fossil" and is
132 located in the user's home directory. On windows, the configuration
@@ -137,12 +137,12 @@
137 <h3>2.2 Repository Databases</h3>
138
139 The repository database is the file that is commonly referred to as
140 "the repository". This is because the repository database contains,
141 among other things, the complete revision, ticket, and wiki history for
142 a project. It is customary to name the repository database after then
143 name of the project, with a ".fossil" suffix. For example, the repository
144 database for the self-hosting Fossil repository is called "fossil.fossil"
145 and the repository database for SQLite is called "sqlite.fossil".
146
147 <h4>2.2.1 Global Project State</h4>
148
@@ -167,13 +167,171 @@
167 efficiently on disk.
168
169 All of the original uncompressed and undeltaed artifacts can be extracted
170 from a Fossil repository database using
171 the [/help/deconstruct | fossil deconstruct]
172 command. Individual artifacts can be extracted using the
173 [/help/artifact | fossil artifact] command.
174 When accessing the repository database using raw SQL and the
175 [/help/sqlite3 | fossil sql] command, the extension function
176 "<tt>content()</tt>" with a single argument which is the SHA1 hash
177 of an artifact will return the complete undeleted and uncompressed
178 content of that artifact.
179
180 Going the other way, the [/help/reconstruct | fossil reconstruct]
181 command will scan a directory hierarchy and add all files found to
182 a new repository database. The [/help/import | fossil import] command
183 works by reading the input git-fast-export stream and using it to construct
184 corresponding artifacts which are then written into the repository database.
185
186 <h4>2.2.2 Project Metadata</h4>
187
188 The global project state information in the repository database is
189 supplemented by computed metadata that makes querying the project state
190 more efficient. Metadata includes but information such as the following:
191
192 * The names for all files found in any checkin.
193 * All check-ins that modify a given file
194 * Parents and children of each checkin.
195 * Potential timeline rows.
196 * The names of all symbolic tags and the checkins they apply to.
197 * The names of all wiki pages and the artifacts that comprise each
198 wiki page.
199 * Attachments and the wiki pages or tickets they apply to.
200 * Current content of each ticket.
201 * Cross-references between tickets, checkins, and wiki pages.
202
203 The metadata is held in various SQL tables in the repository database.
204 The metadata is designed to facilitate queries for the various timelines and
205 reports that Fossil generates.
206 As the functionality of Fossil evolves,
207 the schema for the metadata can and does change from time to time.
208 But schema changes do no invalidate the repository. Remember that the
209 metadata contains no new information - only information that has been
210 extracted from the canonical artifacts and saved in a more useful form.
211 Hence, when the metadata schema changes, the prior metadata can be discarded
212 and the entire metadata corpus can be recomputed from the canonical
213 artifacts. That is what the
214 [/help/rebuild | fossil rebuild] command does.
215
216 <h4>2.2.3 Display And Processing Preferences</h4>
217
218 The repository database also holds information used to help format
219 the display of web pages and configuration settings that override the
220 global configuration settings for the specific repository. All of
221 this information (and the user credentials and privileges too) is
222 local to each repository database; it is not shared between repositories
223 by [/help/sync | fossil sync]. That is because it is entirely reasonable
224 that two different websites for the same project might have completely
225 different display preferences and user communities. One instance of the
226 project might be a fork of the other, for example, which pulls from the
227 other but never pushes and extends the project in ways that the keepers of
228 the other website disapprove of.
229
230 Display and processing information includes the following:
231
232 * The name and description of the project
233 * The CSS file, header, and footer used by all web pages
234 * The project logo image
235 * Fields of tickets that are considered "significant" and which are
236 therefore collected from artifacts and made available for display
237 * Templates for screens to view, edit, and create tickets
238 * Ticket report formats and display preferences
239 * Local values for [/help/setting | settings] that override the
240 global values defined in the per-user configuration database.
241
242 Though the display and processing preferences do not move between
243 repository instances using [/help/sync | fossil sync], this information
244 can be shared between repositories using the
245 [/help/config | fossil config push] and
246 [/help/config | fossil config pull] commands.
247 The display and processing information is also copied into new
248 repositories when they are created using
249 [/help/clone | fossil clone].
250
251 <h4>2.2.4 User Credentials And Privileges</h4>
252
253 Just because two development teams are collaborating on a project and allow
254 push and/or pull between their repositories does not mean that they
255 trust each other enough to share passwords and access privileges.
256 Hence the names and emails and passwords and privileges of users are
257 considered private information that is kept locally in each repository.
258
259 Each repository database has a table holding the username, privileges,
260 and login credentials for users authorized to interact with that particular
261 database. In addition, there is a table named "concealed" that maps the
262 SHA1 hash of each users email address back into their true email address.
263 The concealed table allows just the SHA1 hash of email addresses to
264 be stored in tickets, and thus prevents actual email addresses from falling
265 into the hands of spammers who happen to clone the repository.
266
267 The content of the user and concealed tables can be pushed and pulled using the
268 [/help/config | fossil config push] and
269 [/help/config | fossil config pull] commands with the "user" and
270 "email" as the AREA argument, but only if you have administrative
271 privileges on the remote repository.
272
273 <h4>2.2.5 Shunned Artifact List</h4>
274
275 The set of canonical artifacts for a project - the global state for the
276 project - is intended to be an append-only database. In other words,
277 new artifacts can be added but artifacts can never be removed. But
278 it sometimes happens that inappropriate content can be mistakenly or
279 maliciously added to a repository. When that happens, the only way
280 to get rid of the content is to [./shunning.wiki | "shun"] it.
281 The "shun" table in the repository database records the SHA1 hash of
282 all shunned artifacts.
283
284 The shun table can be pushed or pulled using
285 the [/help/config | fossil config] command with the "shun" AREA argument.
286 The shun table is also copied during a [/help/clone | clone].
287
288 <h3>2.3 Checkout Databases</h3>
289
290 Unlike several other popular DVCSes, Fossil allows a single repository
291 to have multiple working checkouts. Each working checkout has a single
292 database in its root directory that records the state of that checkout.
293 The checkout database is named "_FOSSIL_" by default, but can be renamed
294 to ".fos" if desired. (Future versions of Fossil might make ".fos" the
295 default name.) The checkout database records information such as the
296 following:
297
298 * The full pathname of the repository database file.
299 * The version that is currently checked out.
300 * Files that have been [/help/add | added],
301 [/help/rm | removed], or [/help/mv | renamed] but not
302 yet committed.
303 * The mtime and size of files as they were originally checked out,
304 in order to expedite checking which files have been edited.
305 * Other checkins that have been [/help/merge | merged] into the
306 working checkout but not yet committed.
307 * Copies of files prior to the most recent undoable operation - needed to
308 implement the [/help/undo | undo] and [/help/redo | redo] commands.
309 * The [/help/stash | stash].
310 * State information for the [/help/bisect | bisect] command.
311
312 For Fossil commands that run from within a working checkout, the
313 first thing that happens is that Fossil locates the checkout database.
314 Fossil first looks in the current directory. If not found there, it
315 looks in the parent directory. If not found there, the parent of the
316 parent. And so forth until either the checkout database is found
317 or the search reaches the root of the filesystem. (In the latter case,
318 Fossil returns an error, of course.) Once the checkout database is
319 located, it is used to locate the repository database.
320
321 Notice that the checkout database contains a pointer to the repository
322 database but that the repository database has no record of the checkout
323 databases. That means that a working checkout directory tree can be
324 freely renamed or copied or deleted without consequence. But the
325 repository database file, on the other hand, has to stay in the same
326 place with the same name or else the open checkout databases will not
327 be able to find it.
328
329 A checkout database is created by the [/help/open | fossil open] command.
330 A checkout database is deleted by [/help/close | fossil close]. The
331 fossil close command really isn't needed; one can accomplish the same
332 thing simply by deleting the checkout database.
333
334 Note that the stash, the undo stack, and the state of the bisect command
335 are all contained within the checkout database. That means that the
336 fossil close command will delete all stash content, the undo stack, and
337 the bisect state. The close command is not undoable. Use it with care.
338

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button